Subversion Repositories tendra.SVN

Rev

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

Rev Author Line No. Line
2 7u83 1
/*
6 7u83 2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions are met:
7
 *
8
 * 1. Redistributions of source code must retain the above copyright notice,
9
 *    this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
11
 *    this list of conditions and the following disclaimer in the documentation
12
 *    and/or other materials provided with the distribution.
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific, prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 *
29
 * $Id$
30
 */
31
/*
2 7u83 32
    		 Crown Copyright (c) 1997
6 7u83 33
 
2 7u83 34
    This TenDRA(r) Computer Program is subject to Copyright
35
    owned by the United Kingdom Secretary of State for Defence
36
    acting through the Defence Evaluation and Research Agency
37
    (DERA).  It is made available to Recipients with a
38
    royalty-free licence for its use, reproduction, transfer
39
    to other parties and amendment for any purpose not excluding
40
    product development provided that any such use et cetera
41
    shall be deemed to be acceptance of the following conditions:-
6 7u83 42
 
2 7u83 43
        (1) Its Recipients shall ensure that this Notice is
44
        reproduced upon any copies or amended versions of it;
6 7u83 45
 
2 7u83 46
        (2) Any amended version of it shall be clearly marked to
47
        show both the nature of and the organisation responsible
48
        for the relevant amendment or amendments;
6 7u83 49
 
2 7u83 50
        (3) Its onward transfer from a recipient to another
51
        party shall be deemed to be that party's acceptance of
52
        these conditions;
6 7u83 53
 
2 7u83 54
        (4) DERA gives no warranty or assurance as to its
55
        quality or suitability for any purpose and DERA accepts
56
        no liability whatsoever in relation to any use to which
57
        it may be put.
58
*/
59
 
60
 
61
#ifndef TDF_INCLUDED
62
#define TDF_INCLUDED
63
 
64
 
65
/* AUTOMATICALLY GENERATED BY make_tdf VERSION 2.0 FROM TDF 4.1 */
66
 
6 7u83 67
extern void init_constructs(void);
68
extern sortname find_sort(char);
2 7u83 69
 
6 7u83 70
extern node *de_access(void);
71
extern node *de_al_tag(void);
72
extern long de_al_tagdef_bits(void);
73
extern node *de_alignment(void);
74
extern node *de_bitfield_variety(void);
75
extern node *de_bool(void);
76
extern node *de_callees(void);
77
extern node *de_error_code(void);
78
extern node *de_error_treatment(void);
79
extern node *de_exp(void);
80
extern long de_external_bits(void);
81
extern node *de_floating_variety(void);
82
extern node *de_label(void);
83
extern node *de_nat(void);
84
extern node *de_ntest(void);
85
extern node *de_procprops(void);
86
extern node *de_rounding_mode(void);
87
extern node *de_shape(void);
88
extern node *de_signed_nat(void);
89
extern long de_sortname_bits(void);
90
extern node *de_string(void);
91
extern node *de_tag(void);
92
extern long de_tagdec_bits(void);
93
extern long de_tagdef_bits(void);
94
extern long de_tokdec_bits(void);
95
extern long de_tokdef_bits(void);
96
extern long de_token_bits(void);
97
extern long de_token_defn_bits(void);
98
extern node *de_transfer_mode(void);
99
extern node *de_variety(void);
100
extern long de_version_bits(void);
2 7u83 101
 
102
#ifdef ENC_TYPES_INCLUDED
6 7u83 103
extern void enc_al_tag_bits(bitstream *, int);
104
extern void enc_al_tagdef_bits(bitstream *, int);
105
extern void enc_external_bits(bitstream *, int);
106
extern void enc_label_bits(bitstream *, int);
107
extern void enc_sortname_bits(bitstream *, int);
108
extern void enc_tag_bits(bitstream *, int);
109
extern void enc_tagdec_bits(bitstream *, int);
110
extern void enc_tagdef_bits(bitstream *, int);
111
extern void enc_tokdec_bits(bitstream *, int);
112
extern void enc_tokdef_bits(bitstream *, int);
113
extern void enc_token_bits(bitstream *, int);
114
extern void enc_token_defn_bits(bitstream *, int);
115
extern void enc_version_bits(bitstream *, int);
2 7u83 116
#endif
117
 
6 7u83 118
extern node *read_access(long);
119
extern node *read_al_tag(long);
120
extern node *read_alignment(long);
121
extern node *read_bitfield_variety(long);
122
extern node *read_bool(long);
123
extern node *read_callees(long);
124
extern node *read_error_code(long);
125
extern node *read_error_treatment(long);
126
extern node *read_exp(long);
127
extern node *read_floating_variety(long);
128
extern node *read_label(long);
129
extern node *read_nat(long);
130
extern node *read_ntest(long);
131
extern node *read_procprops(long);
132
extern node *read_rounding_mode(long);
133
extern node *read_shape(long);
134
extern node *read_signed_nat(long);
135
extern node *read_string(long);
136
extern node *read_tag(long);
137
extern node *read_transfer_mode(long);
138
extern node *read_variety(long);
2 7u83 139
 
140
#define VERSION_capsule				"TDFC"
141
#define VERSION_library				"TDFL"
142
#define VERSION_major				4
143
#define VERSION_minor				1
144
 
145
#define LINK_al_tagdef_props			"aldef"
146
#define LINK_tagdec_props			"tagdec"
147
#define LINK_tagdef_props			"tagdef"
148
#define LINK_tokdec_props			"tokdec"
149
#define LINK_tokdef_props			"tokdef"
150
#define LINK_version_props			"versions"
151
#define LINK_tld_props				"tld"
152
 
153
#define LINK_al_tag				"alignment"
154
#define LINK_tag				"tag"
155
#define LINK_token				"token"
156
 
157
#define SORT_access				1
158
#define SORT_al_tag				2
159
#define SORT_alignment				3
160
#define SORT_bitfield_variety			4
161
#define SORT_bool				5
162
#define SORT_error_treatment			6
163
#define SORT_exp				7
164
#define SORT_floating_variety			8
165
#define SORT_foreign_sort			9
166
#define SORT_label				10
167
#define SORT_nat				11
168
#define SORT_ntest				12
169
#define SORT_procprops				13
170
#define SORT_rounding_mode			14
171
#define SORT_shape				15
172
#define SORT_signed_nat				16
173
#define SORT_string				17
174
#define SORT_tag				18
175
#define SORT_transfer_mode			19
176
#define SORT_token				20
177
#define SORT_variety				21
178
#define SORT_foreign				ENC_foreign_sort
179
#define SORT_callees				22
180
#define SORT_error_code				23
181
#define SORT_sortname				0
182
#define SORT_unknown				0
6 7u83 183
#define SORT_repeat				(-1)
184
#define SORT_option				(-2)
185
#define SORT_completion				(-3)
186
#define SORT_small_tdfint			(-4)
187
#define SORT_bitstream				(-5)
188
#define SORT_bytestream				(-6)
189
#define SORT_tdfbool				(-7)
190
#define SORT_tdfident				(-8)
191
#define SORT_tdfint				(-9)
192
#define SORT_tdfstring				(-10)
2 7u83 193
#define SORT_max				21
194
#define SORT_no					24
195
 
196
#define ENC_access_apply_token			1
197
#define ENC_access_cond				2
198
#define ENC_add_accesses			3
199
#define ENC_constant				4
200
#define ENC_long_jump_access			5
201
#define ENC_no_other_read			6
202
#define ENC_no_other_write			7
203
#define ENC_out_par				8
204
#define ENC_preserve				9
205
#define ENC_register				10
206
#define ENC_standard_access			11
207
#define ENC_used_as_volatile			12
208
#define ENC_visible				13
209
#define ENC_al_tag_apply_token			2
210
#define ENC_make_al_tag				1
211
#define ENC_make_al_tagdef			1
212
#define ENC_alignment_apply_token		1
213
#define ENC_alignment_cond			2
214
#define ENC_alignment				3
215
#define ENC_alloca_alignment			4
216
#define ENC_callees_alignment			5
217
#define ENC_callers_alignment			6
218
#define ENC_code_alignment			7
219
#define ENC_locals_alignment			8
220
#define ENC_obtain_al_tag			9
221
#define ENC_parameter_alignment			10
222
#define ENC_unite_alignments			11
223
#define ENC_var_param_alignment			12
224
#define ENC_bfvar_apply_token			1
225
#define ENC_bfvar_cond				2
226
#define ENC_bfvar_bits				3
227
#define ENC_bool_apply_token			1
228
#define ENC_bool_cond				2
229
#define ENC_false				3
230
#define ENC_true				4
231
#define ENC_make_callee_list			1
232
#define ENC_make_dynamic_callees		2
233
#define ENC_same_callees			3
234
#define ENC_nil_access				1
235
#define ENC_overflow				2
236
#define ENC_stack_overflow			3
237
#define ENC_errt_apply_token			1
238
#define ENC_errt_cond				2
239
#define ENC_continue				3
240
#define ENC_error_jump				4
241
#define ENC_trap				5
242
#define ENC_wrap				6
243
#define ENC_impossible				7
244
#define ENC_exp_apply_token			1
245
#define ENC_exp_cond				2
246
#define ENC_abs					3
247
#define ENC_add_to_ptr				4
248
#define ENC_and					5
249
#define ENC_apply_proc				6
250
#define ENC_apply_general_proc			7
251
#define ENC_assign				8
252
#define ENC_assign_with_mode			9
253
#define ENC_bitfield_assign			10
254
#define ENC_bitfield_assign_with_mode		11
255
#define ENC_bitfield_contents			12
256
#define ENC_bitfield_contents_with_mode		13
257
#define ENC_case				14
258
#define ENC_change_bitfield_to_int		15
259
#define ENC_change_floating_variety		16
260
#define ENC_change_variety			17
261
#define ENC_change_int_to_bitfield		18
262
#define ENC_complex_conjugate			19
263
#define ENC_component				20
264
#define ENC_concat_nof				21
265
#define ENC_conditional				22
266
#define ENC_contents				23
267
#define ENC_contents_with_mode			24
268
#define ENC_current_env				25
269
#define ENC_div0				26
270
#define ENC_div1				27
271
#define ENC_div2				28
272
#define ENC_env_offset				29
273
#define ENC_env_size				30
274
#define ENC_fail_installer			31
275
#define ENC_float_int				32
276
#define ENC_floating_abs			33
277
#define ENC_floating_div			34
278
#define ENC_floating_minus			35
279
#define ENC_floating_maximum			36
280
#define ENC_floating_minimum			37
281
#define ENC_floating_mult			38
282
#define ENC_floating_negate			39
283
#define ENC_floating_plus			40
284
#define ENC_floating_power			41
285
#define ENC_floating_test			42
286
#define ENC_goto				43
287
#define ENC_goto_local_lv			44
288
#define ENC_identify				45
289
#define ENC_ignorable				46
290
#define ENC_imaginary_part			47
291
#define ENC_initial_value			48
292
#define ENC_integer_test			49
293
#define ENC_labelled				50
294
#define ENC_last_local				51
295
#define ENC_local_alloc				52
296
#define ENC_local_alloc_check			53
297
#define ENC_local_free				54
298
#define ENC_local_free_all			55
299
#define ENC_long_jump				56
300
#define ENC_make_complex			57
301
#define ENC_make_compound			58
302
#define ENC_make_floating			59
303
#define ENC_make_general_proc			60
304
#define ENC_make_int				61
305
#define ENC_make_local_lv			62
306
#define ENC_make_nof				63
307
#define ENC_make_nof_int			64
308
#define ENC_make_null_local_lv			65
309
#define ENC_make_null_proc			66
310
#define ENC_make_null_ptr			67
311
#define ENC_make_proc				68
312
#define ENC_make_stack_limit			116
313
#define ENC_make_top				69
314
#define ENC_make_value				70
315
#define ENC_maximum				71
316
#define ENC_minimum				72
317
#define ENC_minus				73
318
#define ENC_move_some				74
319
#define ENC_mult				75
320
#define ENC_n_copies				76
321
#define ENC_negate				77
322
#define ENC_not					78
323
#define ENC_obtain_tag				79
324
#define ENC_offset_add				80
325
#define ENC_offset_div				81
326
#define ENC_offset_div_by_int			82
327
#define ENC_offset_max				83
328
#define ENC_offset_mult				84
329
#define ENC_offset_negate			85
330
#define ENC_offset_pad				86
331
#define ENC_offset_subtract			87
332
#define ENC_offset_test				88
333
#define ENC_offset_zero				89
334
#define ENC_or					90
335
#define ENC_plus				91
336
#define ENC_pointer_test			92
337
#define ENC_power				93
338
#define ENC_proc_test				94
339
#define ENC_profile				95
340
#define ENC_real_part				96
341
#define ENC_rem0				97
342
#define ENC_rem1				98
343
#define ENC_rem2				99
344
#define ENC_repeat				100
345
#define ENC_return				101
346
#define ENC_return_to_label			102
347
#define ENC_round_with_mode			103
348
#define ENC_rotate_left				104
349
#define ENC_rotate_right			105
350
#define ENC_sequence				106
351
#define ENC_set_stack_limit			107
352
#define ENC_shape_offset			108
353
#define ENC_shift_left				109
354
#define ENC_shift_right				110
355
#define ENC_subtract_ptrs			111
356
#define ENC_tail_call				112
357
#define ENC_untidy_return			113
358
#define ENC_variable				114
359
#define ENC_xor					115
360
#define ENC_string_extern			1
361
#define ENC_unique_extern			2
362
#define ENC_chain_extern			3
363
#define ENC_flvar_apply_token			1
364
#define ENC_flvar_cond				2
365
#define ENC_flvar_parms				3
366
#define ENC_complex_parms			4
367
#define ENC_float_of_complex			5
368
#define ENC_complex_of_float			6
369
#define ENC_label_apply_token			2
370
#define ENC_make_label				1
371
#define ENC_nat_apply_token			1
372
#define ENC_nat_cond				2
373
#define ENC_computed_nat			3
374
#define ENC_error_val				4
375
#define ENC_make_nat				5
376
#define ENC_ntest_apply_token			1
377
#define ENC_ntest_cond				2
378
#define ENC_equal				3
379
#define ENC_greater_than			4
380
#define ENC_greater_than_or_equal		5
381
#define ENC_less_than				6
382
#define ENC_less_than_or_equal			7
383
#define ENC_not_equal				8
384
#define ENC_not_greater_than			9
385
#define ENC_not_greater_than_or_equal		10
386
#define ENC_not_less_than			11
387
#define ENC_not_less_than_or_equal		12
388
#define ENC_less_than_or_greater_than		13
389
#define ENC_not_less_than_and_not_great		14
390
#define ENC_comparable				15
391
#define ENC_not_comparable			16
392
#define ENC_procprops_apply_token		1
393
#define ENC_procprops_cond			2
394
#define ENC_add_procprops			3
395
#define ENC_check_stack				4
396
#define ENC_inline				5
397
#define ENC_no_long_jump_dest			6
398
#define ENC_untidy				7
399
#define ENC_var_callees				8
400
#define ENC_var_callers				9
401
#define ENC_rounding_mode_apply_token		1
402
#define ENC_rounding_mode_cond			2
403
#define ENC_round_as_state			3
404
#define ENC_to_nearest				4
405
#define ENC_toward_larger			5
406
#define ENC_toward_smaller			6
407
#define ENC_toward_zero				7
408
#define ENC_shape_apply_token			1
409
#define ENC_shape_cond				2
410
#define ENC_bitfield				3
411
#define ENC_bottom				4
412
#define ENC_compound				5
413
#define ENC_floating				6
414
#define ENC_integer				7
415
#define ENC_nof					8
416
#define ENC_offset				9
417
#define ENC_pointer				10
418
#define ENC_proc				11
419
#define ENC_top					12
420
#define ENC_shape_none				13
421
#define ENC_signed_nat_apply_token		1
422
#define ENC_signed_nat_cond			2
423
#define ENC_computed_signed_nat			3
424
#define ENC_make_signed_nat			4
425
#define ENC_snat_from_nat			5
426
#define ENC_access				1
427
#define ENC_al_tag				2
428
#define ENC_alignment_sort			3
429
#define ENC_bitfield_variety			4
430
#define ENC_bool				5
431
#define ENC_error_treatment			6
432
#define ENC_exp					7
433
#define ENC_floating_variety			8
434
#define ENC_foreign_sort			9
435
#define ENC_label				10
436
#define ENC_nat					11
437
#define ENC_ntest				12
438
#define ENC_procprops				13
439
#define ENC_rounding_mode			14
440
#define ENC_shape				15
441
#define ENC_signed_nat				16
442
#define ENC_string				17
443
#define ENC_tag					18
444
#define ENC_transfer_mode			19
445
#define ENC_token				20
446
#define ENC_variety				21
447
#define ENC_string_apply_token			1
448
#define ENC_string_cond				2
449
#define ENC_concat_string			3
450
#define ENC_make_string				4
451
#define ENC_tag_apply_token			2
452
#define ENC_make_tag				1
453
#define ENC_make_id_tagdec			1
454
#define ENC_make_var_tagdec			2
455
#define ENC_common_tagdec			3
456
#define ENC_make_id_tagdef			1
457
#define ENC_make_var_tagdef			2
458
#define ENC_common_tagdef			3
459
#define ENC_make_tokdec				1
460
#define ENC_make_tokdef				1
461
#define ENC_token_apply_token			1
462
#define ENC_make_tok				2
463
#define ENC_use_tokdef				3
464
#define ENC_token_definition			1
465
#define ENC_transfer_mode_apply_token		1
466
#define ENC_transfer_mode_cond			2
467
#define ENC_add_modes				3
468
#define ENC_overlap				4
469
#define ENC_standard_transfer_mode		5
470
#define ENC_trap_on_nil				6
471
#define ENC_volatile				7
472
#define ENC_complete				8
473
#define ENC_var_apply_token			1
474
#define ENC_var_cond				2
475
#define ENC_var_limits				3
476
#define ENC_var_width				4
477
#define ENC_make_version			1
478
#define ENC_user_info				2
479
 
480
 
481
#endif