2 |
7u83 |
1 |
TDF 4.1 SPECIFICATION
|
|
|
2 |
=====================
|
|
|
3 |
|
|
|
4 |
The file def_4_1.db gives a compact machine readable description of the
|
|
|
5 |
encoding of TDF version 4.1, generated directly from the TDF specification.
|
|
|
6 |
The similar description for version 4.0, def_4_0.db, is also given.
|
|
|
7 |
The make_tdf tool may be used to generate code from these descriptions
|
|
|
8 |
and a template file; alternatively other tools may be written to process
|
|
|
9 |
the description.
|
|
|
10 |
|
|
|
11 |
The information given consists of:
|
|
|
12 |
|
|
|
13 |
- the list of basic sorts [sorts],
|
|
|
14 |
- the list of list sorts [lists],
|
|
|
15 |
- the list of simple list sorts [slists],
|
|
|
16 |
- the list of optional sorts [options],
|
|
|
17 |
- the list of linkable sorts [linkable_entities],
|
|
|
18 |
- the list of unit sorts [kinds_of_unit],
|
|
|
19 |
- the list of edge constructs for linkable sorts [graph_edges],
|
|
|
20 |
- the major version number [major_version],
|
|
|
21 |
- the minor version number [minor_version].
|
|
|
22 |
|
|
|
23 |
Each sort has the following associated information:
|
|
|
24 |
|
|
|
25 |
- the sort name [sortid],
|
|
|
26 |
- the number of bits used to encode the sort [encoding_bits],
|
|
|
27 |
- whether extended encoding is used [has_extension],
|
|
|
28 |
- the list of constructs of that sort [constructs].
|
|
|
29 |
|
|
|
30 |
Each construct has the following associated information:
|
|
|
31 |
|
|
|
32 |
- the construct name [construct_name],
|
|
|
33 |
- the encoding of the construct [encoding],
|
|
|
34 |
- the name of the construct result sort [result_sort],
|
|
|
35 |
- the list of construct parameters [parameter_sorts],
|
|
|
36 |
|
|
|
37 |
it may also have:
|
|
|
38 |
|
|
|
39 |
- a list of boundary alignment information [boundaries],
|
|
|
40 |
- a list of parameter break information [break].
|
|
|
41 |
|
|
|
42 |
Each construct parameter has the following associated information:
|
|
|
43 |
|
|
|
44 |
- the parameter name,
|
|
|
45 |
- the name of the parameter sort.
|
|
|
46 |
|
|
|
47 |
The boundary alignment information gives a list of numbers which indicate
|
|
|
48 |
that the nth argument should be aligned on a byte boundary. The parameter
|
|
|
49 |
break information is also a list of numbers which indicate that the value
|
|
|
50 |
of the construct needs to be partially evaluated after the nth argument
|
|
|
51 |
has been read.
|
|
|
52 |
|
|
|
53 |
Each list or simple list entry consists of a sort name with a '_list'
|
|
|
54 |
suffix. Similarly each optional sort entry consists of a sort name
|
|
|
55 |
with an '_option' suffix.
|
|
|
56 |
|
|
|
57 |
Each linkable sort has the following associated information:
|
|
|
58 |
|
|
|
59 |
- the sort name [entity_sort],
|
|
|
60 |
- the name used to identify the sort in a TDF capsule [entity_identifier].
|
|
|
61 |
|
|
|
62 |
Each unit sort has the following associated information:
|
|
|
63 |
|
|
|
64 |
- the sort name [unit_elements],
|
|
|
65 |
- the name used to identify the sort in a TDF capsule [unit_identifier].
|
|
|
66 |
|
|
|
67 |
Each edge construct has the following associated information:
|
|
|
68 |
|
|
|
69 |
- the result sort name [edge_sort],
|
|
|
70 |
- the construct name [edge_construct].
|
|
|
71 |
|
|
|
72 |
For a formal grammar of the description file, see the sid grammar,
|
|
|
73 |
syntax.sid, in the make_tdf source.
|