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
7 7u83 3
 
2 7u83 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:-
7 7u83 12
 
2 7u83 13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
7 7u83 15
 
2 7u83 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;
7 7u83 19
 
2 7u83 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;
7 7u83 23
 
2 7u83 24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
/*
31
    AUTOMATICALLY GENERATED FROM ALGEBRA errors (VERSION 1.0)
32
    BY calculus (VERSION 1.2)
33
*/
34
 
35
#ifndef ERRORS_H_TOK_INCLUDED
36
#define ERRORS_H_TOK_INCLUDED
37
 
38
#ifndef errors_NAME
39
#define errors_NAME			"errors"
40
#define errors_VERSION			"1.0"
41
#define errors_SPECIFICATION		1
42
#define errors_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 char * string;
2 7u83 56
 
57
 
58
/* Basic types */
59
 
60
#ifndef errors_DESTR_DEFINED
61
#define errors_DESTR_DEFINED
7 7u83 62
typedef void (*DESTROYER)();
2 7u83 63
#endif
64
 
7 7u83 65
#pragma token PROC(TYPE) TYPE PTR #
66
#pragma token PROC(TYPE) TYPE LIST #
67
#pragma token PROC(TYPE) TYPE STACK #
68
#pragma token PROC(TYPE) TYPE SIZE #
2 7u83 69
 
70
#pragma interface PTR LIST STACK SIZE
71
 
72
 
73
/* Enumeration type definitions */
74
 
75
 
76
 
77
/* Union type definitions */
78
 
79
#pragma token TYPE NAME #
80
#pragma interface NAME
81
#pragma token TYPE MESSAGE #
82
#pragma interface MESSAGE
83
#pragma token TYPE MAP #
84
#pragma interface MAP
85
#pragma token TYPE PARAM #
86
#pragma interface PARAM
87
#pragma token TYPE ENTRY #
88
#pragma interface ENTRY
89
 
90
 
91
/* Structure declarations */
92
 
93
 
94
 
95
/* Identity type definitions */
96
 
7 7u83 97
typedef NAME KEY;
98
typedef NAME PROPERTY;
99
typedef NAME TYPE;
100
typedef NAME USAGE;
2 7u83 101
 
102
 
103
/* Structure definitions */
104
 
105
#ifndef errors_STRUCT_DEFINED
106
#define errors_STRUCT_DEFINED
107
 
108
#endif /* errors_STRUCT_DEFINED */
109
 
110
 
111
/* Function declarations */
112
 
7 7u83 113
extern void destroy_errors();
114
extern void dummy_destroy_errors();
2 7u83 115
#ifdef errors_IO_ROUTINES
7 7u83 116
extern unsigned crt_errors_alias;
117
extern void clear_errors_alias(void);
2 7u83 118
#endif
119
 
120
 
121
/* Pointer token specifications */
122
 
123
#pragma token PROC {\
7 7u83 124
	TYPE t, EXP : PTR(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 125
	EXP e1, EXP e2\
7 7u83 126
    } EXP : PTR(t) : STEP_ptr #
2 7u83 127
 
7 7u83 128
#pragma token PROC(\
2 7u83 129
	TYPE t\
7 7u83 130
    ) EXP const : PTR(t) : NULL_ptr #
2 7u83 131
 
132
#pragma token PROC {\
7 7u83 133
	TYPE t, EXP : PTR(t) : e |\
2 7u83 134
	EXP e\
135
    } EXP : int : IS_NULL_ptr #
136
 
137
#pragma token PROC {\
7 7u83 138
	TYPE t, EXP : PTR(t) : e1, EXP : PTR(t) : e2 |\
2 7u83 139
	EXP e1, EXP e2\
140
    } EXP : int : EQ_ptr #
141
 
142
#pragma token PROC {\
7 7u83 143
	TYPE t, EXP : SIZE(t) : e |\
2 7u83 144
	EXP e\
7 7u83 145
    } EXP : PTR(t) : MAKE_ptr #
2 7u83 146
 
147
#pragma token PROC {\
7 7u83 148
	TYPE t, EXP : PTR(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 149
	EXP e1, EXP e2\
150
    } EXP : void : DESTROY_ptr #
151
 
7 7u83 152
#pragma token PROC(\
2 7u83 153
	TYPE t\
7 7u83 154
    ) EXP : PTR(t) : UNIQ_ptr #
2 7u83 155
 
156
#pragma token PROC {\
7 7u83 157
	TYPE t, EXP : PTR(t) : e |\
2 7u83 158
	EXP e\
159
    } EXP : void : DESTROY_UNIQ_ptr #
160
 
161
#pragma interface STEP_ptr NULL_ptr IS_NULL_ptr EQ_ptr
162
#pragma interface MAKE_ptr DESTROY_ptr
163
 
164
#ifdef errors_IO_ROUTINES
165
#pragma token PROC {\
7 7u83 166
	TYPE t, EXP : PTR(t) : e |\
2 7u83 167
	EXP e\
168
    } EXP : void * : VOIDSTAR_ptr #
169
#pragma interface VOIDSTAR_ptr
170
#endif
171
 
7 7u83 172
#pragma token PROC(\
2 7u83 173
	TYPE t\
7 7u83 174
    ) EXP const : SIZE(PTR(t)) : SIZE_ptr #
2 7u83 175
 
176
#pragma token PROC {\
7 7u83 177
	TYPE t, EXP : PTR(PTR(t)) : e1,\
178
	EXP : PTR(t) : e2 |\
2 7u83 179
	EXP e1, EXP e2\
180
    } EXP : void : COPY_ptr #
181
 
182
#pragma token PROC {\
7 7u83 183
	TYPE t, EXP : PTR(PTR(t)) : e |\
2 7u83 184
	EXP e\
7 7u83 185
    } EXP : PTR(t) : DEREF_ptr #
2 7u83 186
 
187
#pragma token PROC {\
7 7u83 188
	TYPE t, EXP : PTR(t) : e2,\
189
	EXP : LIST(PTR(t)) : e3,\
190
	EXP lvalue : LIST(PTR(t)) : e4 |\
2 7u83 191
	EXP e2, EXP e3, EXP e4\
192
    } STATEMENT CONS_ptr #
193
 
194
#pragma token PROC {\
7 7u83 195
	TYPE t, EXP lvalue : PTR(t) : e2,\
196
	EXP lvalue : LIST(PTR(t)) : e3,\
197
	EXP : LIST(PTR(t)) : e4 |\
2 7u83 198
	EXP e2, EXP e3, EXP e4\
199
    } STATEMENT UN_CONS_ptr #
200
 
201
#pragma token PROC {\
202
	TYPE t, EXP : DESTROYER : e1,\
7 7u83 203
	EXP lvalue : PTR(t) : e2,\
204
	EXP lvalue : LIST(PTR(t)) : e3,\
205
	EXP : LIST(PTR(t)) : e4 |\
2 7u83 206
	EXP e1, EXP e2, EXP e3, EXP e4\
207
    } STATEMENT DESTROY_CONS_ptr #
208
 
209
#pragma token PROC {\
7 7u83 210
	TYPE t, EXP : PTR(t) : e2,\
211
	EXP lvalue : STACK(PTR(t)) : e3 |\
2 7u83 212
	EXP e2, EXP e3\
213
    } STATEMENT PUSH_ptr #
214
 
215
#pragma token PROC {\
7 7u83 216
	TYPE t, EXP lvalue : PTR(t) : e2,\
217
	EXP lvalue : STACK(PTR(t)) : e3 |\
2 7u83 218
	EXP e2, EXP e3\
219
    } STATEMENT POP_ptr #
220
 
221
#pragma interface SIZE_ptr COPY_ptr DEREF_ptr
222
#pragma interface CONS_ptr UN_CONS_ptr DESTROY_CONS_ptr
223
#pragma interface PUSH_ptr POP_ptr
224
 
225
 
226
/* List token specifications */
227
 
228
#pragma token PROC {\
7 7u83 229
	TYPE t, EXP : LIST(t) : e |\
2 7u83 230
	EXP e\
7 7u83 231
    } EXP : PTR(t) : HEAD_list #
2 7u83 232
 
233
#pragma token PROC {\
7 7u83 234
	TYPE t, EXP : LIST(t) : e |\
2 7u83 235
	EXP e\
7 7u83 236
    } EXP : PTR(LIST(t)) : PTR_TAIL_list #
2 7u83 237
 
238
#pragma token PROC {\
7 7u83 239
	TYPE t, EXP : LIST(t) : e |\
2 7u83 240
	EXP e\
7 7u83 241
    } EXP : LIST(t) : TAIL_list #
2 7u83 242
 
243
#pragma token PROC {\
7 7u83 244
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 245
	EXP e1\
246
    } EXP : unsigned : LENGTH_list #
247
 
248
#pragma token PROC {\
7 7u83 249
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 250
	EXP e1\
7 7u83 251
    } EXP : LIST(t) : END_list #
2 7u83 252
 
253
#pragma token PROC {\
7 7u83 254
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 255
	EXP e1\
7 7u83 256
    } EXP : LIST(t) : REVERSE_list #
2 7u83 257
 
258
#pragma token PROC {\
7 7u83 259
	TYPE t, EXP : LIST(t) : e1, EXP : LIST(t) : e2 |\
2 7u83 260
	EXP e1, EXP e2\
7 7u83 261
    } EXP : LIST(t) : APPEND_list #
2 7u83 262
 
7 7u83 263
#pragma token PROC(\
2 7u83 264
	TYPE t\
7 7u83 265
    ) EXP const : LIST(t) : NULL_list #
2 7u83 266
 
267
#pragma token PROC {\
7 7u83 268
	TYPE t, EXP : LIST(t) : e |\
2 7u83 269
	EXP e\
270
    } EXP : int : IS_NULL_list #
271
 
272
#pragma token PROC {\
7 7u83 273
	TYPE t, EXP : LIST(t) : e1, EXP : LIST(t) : e2 |\
2 7u83 274
	EXP e1, EXP e2\
275
    } EXP : int : EQ_list #
276
 
7 7u83 277
#pragma token PROC(\
2 7u83 278
	TYPE t\
7 7u83 279
    ) EXP : LIST(t) : UNIQ_list #
2 7u83 280
 
281
#pragma token PROC {\
7 7u83 282
	TYPE t, EXP : LIST(t) : e |\
2 7u83 283
	EXP e\
284
    } EXP : void : DESTROY_UNIQ_list #
285
 
286
#pragma token PROC {\
7 7u83 287
	TYPE t, EXP : LIST(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 288
	EXP e1, EXP e2\
289
    } STATEMENT DESTROY_list #
290
 
291
#pragma interface HEAD_list PTR_TAIL_list TAIL_list
292
#pragma interface LENGTH_list END_list REVERSE_list APPEND_list
293
#pragma interface NULL_list IS_NULL_list EQ_list
294
#pragma interface UNIQ_list DESTROY_UNIQ_list DESTROY_list
295
 
296
#ifdef errors_IO_ROUTINES
297
#pragma token PROC {\
7 7u83 298
	TYPE t, EXP : LIST(t) : e |\
2 7u83 299
	EXP e\
300
    } EXP : void * : VOIDSTAR_list #
301
#pragma interface VOIDSTAR_list
302
#endif
303
 
7 7u83 304
#pragma token PROC(\
2 7u83 305
	TYPE t\
7 7u83 306
    ) EXP const : SIZE(LIST(t)) : SIZE_list #
2 7u83 307
 
308
#pragma token PROC {\
7 7u83 309
	TYPE t, EXP : PTR(LIST(t)) : e1,\
310
	EXP : LIST(t) : e2 |\
2 7u83 311
	EXP e1, EXP e2\
312
    } EXP : void : COPY_list #
313
 
314
#pragma token PROC {\
7 7u83 315
	TYPE t, EXP : PTR(LIST(t)) : e |\
2 7u83 316
	EXP e\
7 7u83 317
    } EXP : LIST(t) : DEREF_list #
2 7u83 318
 
319
#pragma token PROC {\
7 7u83 320
	TYPE t, EXP : LIST(t) : e2,\
321
	EXP : LIST(LIST(t)) : e3,\
322
	EXP lvalue : LIST(LIST(t)) : e4 |\
2 7u83 323
	EXP e2, EXP e3, EXP e4\
324
    } STATEMENT CONS_list #
325
 
326
#pragma token PROC {\
7 7u83 327
	TYPE t, EXP lvalue : LIST(t) : e2,\
328
	EXP lvalue : LIST(LIST(t)) : e3,\
329
	EXP : LIST(LIST(t)) : e4 |\
2 7u83 330
	EXP e2, EXP e3, EXP e4\
331
    } STATEMENT UN_CONS_list #
332
 
333
#pragma token PROC {\
334
	TYPE t, EXP : DESTROYER : e1,\
7 7u83 335
	EXP lvalue : LIST(t) : e2,\
336
	EXP lvalue : LIST(LIST(t)) : e3,\
337
	EXP : LIST(LIST(t)) : e4 |\
2 7u83 338
	EXP e1, EXP e2, EXP e3, EXP e4\
339
    } STATEMENT DESTROY_CONS_list #
340
 
341
#pragma token PROC {\
7 7u83 342
	TYPE t, EXP : LIST(t) : e2,\
343
	EXP lvalue : STACK(LIST(t)) : e3 |\
2 7u83 344
	EXP e2, EXP e3\
345
    } STATEMENT PUSH_list #
346
 
347
#pragma token PROC {\
7 7u83 348
	TYPE t, EXP lvalue : LIST(t) : e2,\
349
	EXP lvalue : STACK(LIST(t)) : e3 |\
2 7u83 350
	EXP e2, EXP e3\
351
    } STATEMENT POP_list #
352
 
353
#pragma interface SIZE_list COPY_list DEREF_list
354
#pragma interface CONS_list UN_CONS_list DESTROY_CONS_list
355
#pragma interface PUSH_list POP_list
356
 
357
 
358
/* Stack token specifications */
359
 
7 7u83 360
#pragma token PROC(\
2 7u83 361
	TYPE t\
7 7u83 362
    ) EXP const : STACK(t) : NULL_stack #
2 7u83 363
 
364
#pragma token PROC {\
7 7u83 365
	TYPE t, EXP : STACK(t) : e |\
2 7u83 366
	EXP e\
367
    } EXP : int : IS_NULL_stack #
368
 
369
#pragma token PROC {\
7 7u83 370
	TYPE t, EXP : STACK(t) : e1 |\
2 7u83 371
	EXP e1\
7 7u83 372
    } EXP : LIST(t) : LIST_stack #
2 7u83 373
 
374
#pragma token PROC {\
7 7u83 375
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 376
	EXP e1\
7 7u83 377
    } EXP : STACK(t) : STACK_list #
2 7u83 378
 
379
#pragma interface NULL_stack IS_NULL_stack LIST_stack STACK_list
380
 
7 7u83 381
#pragma token PROC(\
2 7u83 382
	TYPE t\
7 7u83 383
    ) EXP const : SIZE(STACK(t)) : SIZE_stack #
2 7u83 384
 
385
#pragma token PROC {\
7 7u83 386
	TYPE t, EXP : PTR(STACK(t)) : e1,\
387
	EXP : STACK(t) : e2 |\
2 7u83 388
	EXP e1, EXP e2\
389
    } EXP : void : COPY_stack #
390
 
391
#pragma token PROC {\
7 7u83 392
	TYPE t, EXP : PTR(STACK(t)) : e |\
2 7u83 393
	EXP e\
7 7u83 394
    } EXP : STACK(t) : DEREF_stack #
2 7u83 395
 
396
#pragma token PROC {\
7 7u83 397
	TYPE t, EXP : STACK(t) : e2,\
398
	EXP : LIST(STACK(t)) : e3,\
399
	EXP lvalue : LIST(STACK(t)) : e4 |\
2 7u83 400
	EXP e2, EXP e3, EXP e4\
401
    } STATEMENT CONS_stack #
402
 
403
#pragma token PROC {\
7 7u83 404
	TYPE t, EXP lvalue : STACK(t) : e2,\
405
	EXP lvalue : LIST(STACK(t)) : e3,\
406
	EXP : LIST(STACK(t)) : e4 |\
2 7u83 407
	EXP e2, EXP e3, EXP e4\
408
    } STATEMENT UN_CONS_stack #
409
 
410
#pragma token PROC {\
411
	TYPE t, EXP : DESTROYER : e1,\
7 7u83 412
	EXP lvalue : STACK(t) : e2,\
413
	EXP lvalue : LIST(STACK(t)) : e3,\
414
	EXP : LIST(STACK(t)) : e4 |\
2 7u83 415
	EXP e1, EXP e2, EXP e3, EXP e4\
416
    } STATEMENT DESTROY_CONS_stack #
417
 
418
#pragma token PROC {\
7 7u83 419
	TYPE t, EXP : STACK(t) : e2,\
420
	EXP lvalue : STACK(STACK(t)) : e3 |\
2 7u83 421
	EXP e2, EXP e3\
422
    } STATEMENT PUSH_stack #
423
 
424
#pragma token PROC {\
7 7u83 425
	TYPE t, EXP lvalue : STACK(t) : e2,\
426
	EXP lvalue : STACK(STACK(t)) : e3 |\
2 7u83 427
	EXP e2, EXP e3\
428
    } STATEMENT POP_stack #
429
 
430
#pragma interface SIZE_stack COPY_stack DEREF_stack
431
#pragma interface CONS_stack UN_CONS_stack DESTROY_CONS_stack
432
#pragma interface PUSH_stack POP_stack
433
 
434
 
435
/* Size token specifications */
436
 
437
#pragma token PROC {\
438
	TYPE t, VARIETY v,\
7 7u83 439
	EXP : SIZE(t) : e1, EXP : v : e2 |\
2 7u83 440
	EXP e1, EXP e2\
7 7u83 441
    } EXP : SIZE(t) : SCALE #
2 7u83 442
 
443
#pragma interface SCALE
444
 
445
 
446
/* Definitions for primitive int */
447
 
7 7u83 448
#pragma token EXP const : SIZE(int) : SIZE_int #
2 7u83 449
 
7 7u83 450
#pragma token PROC(\
451
	EXP : PTR(int) :,\
2 7u83 452
	EXP : int :\
453
    ) EXP : void : COPY_int #
454
 
7 7u83 455
#pragma token PROC(\
456
	EXP : PTR(int) :\
2 7u83 457
    ) EXP : int : DEREF_int #
458
 
7 7u83 459
#pragma token PROC(\
2 7u83 460
	EXP : int :,\
7 7u83 461
	EXP : LIST(int) :,\
462
	EXP lvalue : LIST(int) :\
2 7u83 463
    ) STATEMENT CONS_int #
464
 
7 7u83 465
#pragma token PROC(\
2 7u83 466
	EXP lvalue : int :,\
7 7u83 467
	EXP lvalue : LIST(int) :,\
468
	EXP : LIST(int) :\
2 7u83 469
    ) STATEMENT UN_CONS_int #
470
 
7 7u83 471
#pragma token PROC(\
2 7u83 472
	EXP : DESTROYER :,\
473
	EXP lvalue : int :,\
7 7u83 474
	EXP lvalue : LIST(int) :,\
475
	EXP : LIST(int) :\
2 7u83 476
    ) STATEMENT DESTROY_CONS_int #
477
 
7 7u83 478
#pragma token PROC(\
2 7u83 479
	EXP : int :,\
7 7u83 480
	EXP lvalue : STACK(int) :\
2 7u83 481
    ) STATEMENT PUSH_int #
482
 
7 7u83 483
#pragma token PROC(\
2 7u83 484
	EXP lvalue : int :,\
7 7u83 485
	EXP lvalue : STACK(int) :\
2 7u83 486
    ) STATEMENT POP_int #
487
 
488
#pragma interface SIZE_int COPY_int DEREF_int
489
#pragma interface CONS_int UN_CONS_int DESTROY_CONS_int
490
#pragma interface PUSH_int POP_int
491
 
492
 
493
/* Definitions for primitive string */
494
 
7 7u83 495
#pragma token EXP const : SIZE(string) : SIZE_string #
2 7u83 496
 
7 7u83 497
#pragma token PROC(\
498
	EXP : PTR(string) :,\
2 7u83 499
	EXP : string :\
500
    ) EXP : void : COPY_string #
501
 
7 7u83 502
#pragma token PROC(\
503
	EXP : PTR(string) :\
2 7u83 504
    ) EXP : string : DEREF_string #
505
 
7 7u83 506
#pragma token PROC(\
2 7u83 507
	EXP : string :,\
7 7u83 508
	EXP : LIST(string) :,\
509
	EXP lvalue : LIST(string) :\
2 7u83 510
    ) STATEMENT CONS_string #
511
 
7 7u83 512
#pragma token PROC(\
2 7u83 513
	EXP lvalue : string :,\
7 7u83 514
	EXP lvalue : LIST(string) :,\
515
	EXP : LIST(string) :\
2 7u83 516
    ) STATEMENT UN_CONS_string #
517
 
7 7u83 518
#pragma token PROC(\
2 7u83 519
	EXP : DESTROYER :,\
520
	EXP lvalue : string :,\
7 7u83 521
	EXP lvalue : LIST(string) :,\
522
	EXP : LIST(string) :\
2 7u83 523
    ) STATEMENT DESTROY_CONS_string #
524
 
7 7u83 525
#pragma token PROC(\
2 7u83 526
	EXP : string :,\
7 7u83 527
	EXP lvalue : STACK(string) :\
2 7u83 528
    ) STATEMENT PUSH_string #
529
 
7 7u83 530
#pragma token PROC(\
2 7u83 531
	EXP lvalue : string :,\
7 7u83 532
	EXP lvalue : STACK(string) :\
2 7u83 533
    ) STATEMENT POP_string #
534
 
535
#pragma interface SIZE_string COPY_string DEREF_string
536
#pragma interface CONS_string UN_CONS_string DESTROY_CONS_string
537
#pragma interface PUSH_string POP_string
538
 
539
 
540
/* Definitions for union NAME */
541
 
7 7u83 542
#define ORDER_name ((unsigned)1)
2 7u83 543
#pragma token EXP const : NAME : NULL_name #
7 7u83 544
#pragma token PROC(EXP : NAME :) EXP : int : IS_NULL_name #
545
#pragma token PROC(EXP : NAME :, EXP : NAME :) EXP : int : EQ_name #
2 7u83 546
#pragma interface NULL_name IS_NULL_name EQ_name
547
 
7 7u83 548
#pragma token EXP const : SIZE(NAME) : SIZE_name #
2 7u83 549
 
7 7u83 550
#pragma token PROC(\
551
	EXP : PTR(NAME) :,\
2 7u83 552
	EXP : NAME :\
553
    ) EXP : void : COPY_name #
554
 
7 7u83 555
#pragma token PROC(\
556
	EXP : PTR(NAME) :\
2 7u83 557
    ) EXP : NAME : DEREF_name #
558
 
7 7u83 559
#pragma token PROC(\
2 7u83 560
	EXP : NAME :,\
7 7u83 561
	EXP : LIST(NAME) :,\
562
	EXP lvalue : LIST(NAME) :\
2 7u83 563
    ) STATEMENT CONS_name #
564
 
7 7u83 565
#pragma token PROC(\
2 7u83 566
	EXP lvalue : NAME :,\
7 7u83 567
	EXP lvalue : LIST(NAME) :,\
568
	EXP : LIST(NAME) :\
2 7u83 569
    ) STATEMENT UN_CONS_name #
570
 
7 7u83 571
#pragma token PROC(\
2 7u83 572
	EXP : DESTROYER :,\
573
	EXP lvalue : NAME :,\
7 7u83 574
	EXP lvalue : LIST(NAME) :,\
575
	EXP : LIST(NAME) :\
2 7u83 576
    ) STATEMENT DESTROY_CONS_name #
577
 
7 7u83 578
#pragma token PROC(\
2 7u83 579
	EXP : NAME :,\
7 7u83 580
	EXP lvalue : STACK(NAME) :\
2 7u83 581
    ) STATEMENT PUSH_name #
582
 
7 7u83 583
#pragma token PROC(\
2 7u83 584
	EXP lvalue : NAME :,\
7 7u83 585
	EXP lvalue : STACK(NAME) :\
2 7u83 586
    ) STATEMENT POP_name #
587
 
588
#pragma interface SIZE_name COPY_name DEREF_name
589
#pragma interface CONS_name UN_CONS_name DESTROY_CONS_name
590
#pragma interface PUSH_name POP_name
591
 
592
 
593
/* Definitions for union MESSAGE */
594
 
7 7u83 595
#define ORDER_msg ((unsigned)2)
2 7u83 596
#pragma token EXP const : MESSAGE : NULL_msg #
7 7u83 597
#pragma token PROC(EXP : MESSAGE :) EXP : int : IS_NULL_msg #
598
#pragma token PROC(EXP : MESSAGE :, EXP : MESSAGE :) EXP : int : EQ_msg #
2 7u83 599
#pragma interface NULL_msg IS_NULL_msg EQ_msg
600
 
7 7u83 601
#pragma token EXP const : SIZE(MESSAGE) : SIZE_msg #
2 7u83 602
 
7 7u83 603
#pragma token PROC(\
604
	EXP : PTR(MESSAGE) :,\
2 7u83 605
	EXP : MESSAGE :\
606
    ) EXP : void : COPY_msg #
607
 
7 7u83 608
#pragma token PROC(\
609
	EXP : PTR(MESSAGE) :\
2 7u83 610
    ) EXP : MESSAGE : DEREF_msg #
611
 
7 7u83 612
#pragma token PROC(\
2 7u83 613
	EXP : MESSAGE :,\
7 7u83 614
	EXP : LIST(MESSAGE) :,\
615
	EXP lvalue : LIST(MESSAGE) :\
2 7u83 616
    ) STATEMENT CONS_msg #
617
 
7 7u83 618
#pragma token PROC(\
2 7u83 619
	EXP lvalue : MESSAGE :,\
7 7u83 620
	EXP lvalue : LIST(MESSAGE) :,\
621
	EXP : LIST(MESSAGE) :\
2 7u83 622
    ) STATEMENT UN_CONS_msg #
623
 
7 7u83 624
#pragma token PROC(\
2 7u83 625
	EXP : DESTROYER :,\
626
	EXP lvalue : MESSAGE :,\
7 7u83 627
	EXP lvalue : LIST(MESSAGE) :,\
628
	EXP : LIST(MESSAGE) :\
2 7u83 629
    ) STATEMENT DESTROY_CONS_msg #
630
 
7 7u83 631
#pragma token PROC(\
2 7u83 632
	EXP : MESSAGE :,\
7 7u83 633
	EXP lvalue : STACK(MESSAGE) :\
2 7u83 634
    ) STATEMENT PUSH_msg #
635
 
7 7u83 636
#pragma token PROC(\
2 7u83 637
	EXP lvalue : MESSAGE :,\
7 7u83 638
	EXP lvalue : STACK(MESSAGE) :\
2 7u83 639
    ) STATEMENT POP_msg #
640
 
641
#pragma interface SIZE_msg COPY_msg DEREF_msg
642
#pragma interface CONS_msg UN_CONS_msg DESTROY_CONS_msg
643
#pragma interface PUSH_msg POP_msg
644
 
645
 
646
/* Definitions for union MAP */
647
 
7 7u83 648
#define ORDER_map ((unsigned)1)
2 7u83 649
#pragma token EXP const : MAP : NULL_map #
7 7u83 650
#pragma token PROC(EXP : MAP :) EXP : int : IS_NULL_map #
651
#pragma token PROC(EXP : MAP :, EXP : MAP :) EXP : int : EQ_map #
2 7u83 652
#pragma interface NULL_map IS_NULL_map EQ_map
653
 
7 7u83 654
#pragma token EXP const : SIZE(MAP) : SIZE_map #
2 7u83 655
 
7 7u83 656
#pragma token PROC(\
657
	EXP : PTR(MAP) :,\
2 7u83 658
	EXP : MAP :\
659
    ) EXP : void : COPY_map #
660
 
7 7u83 661
#pragma token PROC(\
662
	EXP : PTR(MAP) :\
2 7u83 663
    ) EXP : MAP : DEREF_map #
664
 
7 7u83 665
#pragma token PROC(\
2 7u83 666
	EXP : MAP :,\
7 7u83 667
	EXP : LIST(MAP) :,\
668
	EXP lvalue : LIST(MAP) :\
2 7u83 669
    ) STATEMENT CONS_map #
670
 
7 7u83 671
#pragma token PROC(\
2 7u83 672
	EXP lvalue : MAP :,\
7 7u83 673
	EXP lvalue : LIST(MAP) :,\
674
	EXP : LIST(MAP) :\
2 7u83 675
    ) STATEMENT UN_CONS_map #
676
 
7 7u83 677
#pragma token PROC(\
2 7u83 678
	EXP : DESTROYER :,\
679
	EXP lvalue : MAP :,\
7 7u83 680
	EXP lvalue : LIST(MAP) :,\
681
	EXP : LIST(MAP) :\
2 7u83 682
    ) STATEMENT DESTROY_CONS_map #
683
 
7 7u83 684
#pragma token PROC(\
2 7u83 685
	EXP : MAP :,\
7 7u83 686
	EXP lvalue : STACK(MAP) :\
2 7u83 687
    ) STATEMENT PUSH_map #
688
 
7 7u83 689
#pragma token PROC(\
2 7u83 690
	EXP lvalue : MAP :,\
7 7u83 691
	EXP lvalue : STACK(MAP) :\
2 7u83 692
    ) STATEMENT POP_map #
693
 
694
#pragma interface SIZE_map COPY_map DEREF_map
695
#pragma interface CONS_map UN_CONS_map DESTROY_CONS_map
696
#pragma interface PUSH_map POP_map
697
 
698
 
699
/* Definitions for union PARAM */
700
 
7 7u83 701
#define ORDER_param ((unsigned)1)
2 7u83 702
#pragma token EXP const : PARAM : NULL_param #
7 7u83 703
#pragma token PROC(EXP : PARAM :) EXP : int : IS_NULL_param #
704
#pragma token PROC(EXP : PARAM :, EXP : PARAM :) EXP : int : EQ_param #
2 7u83 705
#pragma interface NULL_param IS_NULL_param EQ_param
706
 
7 7u83 707
#pragma token EXP const : SIZE(PARAM) : SIZE_param #
2 7u83 708
 
7 7u83 709
#pragma token PROC(\
710
	EXP : PTR(PARAM) :,\
2 7u83 711
	EXP : PARAM :\
712
    ) EXP : void : COPY_param #
713
 
7 7u83 714
#pragma token PROC(\
715
	EXP : PTR(PARAM) :\
2 7u83 716
    ) EXP : PARAM : DEREF_param #
717
 
7 7u83 718
#pragma token PROC(\
2 7u83 719
	EXP : PARAM :,\
7 7u83 720
	EXP : LIST(PARAM) :,\
721
	EXP lvalue : LIST(PARAM) :\
2 7u83 722
    ) STATEMENT CONS_param #
723
 
7 7u83 724
#pragma token PROC(\
2 7u83 725
	EXP lvalue : PARAM :,\
7 7u83 726
	EXP lvalue : LIST(PARAM) :,\
727
	EXP : LIST(PARAM) :\
2 7u83 728
    ) STATEMENT UN_CONS_param #
729
 
7 7u83 730
#pragma token PROC(\
2 7u83 731
	EXP : DESTROYER :,\
732
	EXP lvalue : PARAM :,\
7 7u83 733
	EXP lvalue : LIST(PARAM) :,\
734
	EXP : LIST(PARAM) :\
2 7u83 735
    ) STATEMENT DESTROY_CONS_param #
736
 
7 7u83 737
#pragma token PROC(\
2 7u83 738
	EXP : PARAM :,\
7 7u83 739
	EXP lvalue : STACK(PARAM) :\
2 7u83 740
    ) STATEMENT PUSH_param #
741
 
7 7u83 742
#pragma token PROC(\
2 7u83 743
	EXP lvalue : PARAM :,\
7 7u83 744
	EXP lvalue : STACK(PARAM) :\
2 7u83 745
    ) STATEMENT POP_param #
746
 
747
#pragma interface SIZE_param COPY_param DEREF_param
748
#pragma interface CONS_param UN_CONS_param DESTROY_CONS_param
749
#pragma interface PUSH_param POP_param
750
 
751
 
752
/* Definitions for union ENTRY */
753
 
7 7u83 754
#define ORDER_entry ((unsigned)1)
2 7u83 755
#pragma token EXP const : ENTRY : NULL_entry #
7 7u83 756
#pragma token PROC(EXP : ENTRY :) EXP : int : IS_NULL_entry #
757
#pragma token PROC(EXP : ENTRY :, EXP : ENTRY :) EXP : int : EQ_entry #
2 7u83 758
#pragma interface NULL_entry IS_NULL_entry EQ_entry
759
 
7 7u83 760
#pragma token EXP const : SIZE(ENTRY) : SIZE_entry #
2 7u83 761
 
7 7u83 762
#pragma token PROC(\
763
	EXP : PTR(ENTRY) :,\
2 7u83 764
	EXP : ENTRY :\
765
    ) EXP : void : COPY_entry #
766
 
7 7u83 767
#pragma token PROC(\
768
	EXP : PTR(ENTRY) :\
2 7u83 769
    ) EXP : ENTRY : DEREF_entry #
770
 
7 7u83 771
#pragma token PROC(\
2 7u83 772
	EXP : ENTRY :,\
7 7u83 773
	EXP : LIST(ENTRY) :,\
774
	EXP lvalue : LIST(ENTRY) :\
2 7u83 775
    ) STATEMENT CONS_entry #
776
 
7 7u83 777
#pragma token PROC(\
2 7u83 778
	EXP lvalue : ENTRY :,\
7 7u83 779
	EXP lvalue : LIST(ENTRY) :,\
780
	EXP : LIST(ENTRY) :\
2 7u83 781
    ) STATEMENT UN_CONS_entry #
782
 
7 7u83 783
#pragma token PROC(\
2 7u83 784
	EXP : DESTROYER :,\
785
	EXP lvalue : ENTRY :,\
7 7u83 786
	EXP lvalue : LIST(ENTRY) :,\
787
	EXP : LIST(ENTRY) :\
2 7u83 788
    ) STATEMENT DESTROY_CONS_entry #
789
 
7 7u83 790
#pragma token PROC(\
2 7u83 791
	EXP : ENTRY :,\
7 7u83 792
	EXP lvalue : STACK(ENTRY) :\
2 7u83 793
    ) STATEMENT PUSH_entry #
794
 
7 7u83 795
#pragma token PROC(\
2 7u83 796
	EXP lvalue : ENTRY :,\
7 7u83 797
	EXP lvalue : STACK(ENTRY) :\
2 7u83 798
    ) STATEMENT POP_entry #
799
 
800
#pragma interface SIZE_entry COPY_entry DEREF_entry
801
#pragma interface CONS_entry UN_CONS_entry DESTROY_CONS_entry
802
#pragma interface PUSH_entry POP_entry
803
 
804
 
805
#endif