verwendet drei spezielle Dateiformate: Objektdatei, Referenz- beziehungsweise Symboldatei sowie Fehlerdatei. Diese drei Formate werden nun ausführlich beschrieben.
Die Dateiformate werden mit Hilfe einer EBNF6.1-ähnlichen Sprache beschrieben. EBNF wird häufig zur Beschreibung der Syntax einer Programmiersprache verwendet (z.B. [#!pim4!#]). Sie ist aber auch geeignet, das Format einer Datei zu beschreiben. Allerdings sind die Terminalsymbole im Falle einer Datei keine Worte -- wie beispielsweise ,,IF`` in --, sondern entweder Konstanten oder Variablen, die einen bestimmten Typ haben. Aus diesem Grund beschreiben wir Terminalsymbole mit Hilfe von -Typen und Konstanten. Hier folgen die Elemente unserer ,,EBNF``:
Der Punkt ,,.`` am Ende der Regel markiert deren Ende. Alles Nachfolgende
ist Kommentar. Die obigen Regeln können zu komplexeren Regeln
zusammengefasst werden, also beispielsweise ,,A=BC|
DE.``.
Dabei bindet ,,|
`` schwächer als die einfache Folge. So bedeutet
,,A=BC|
DE.``, dass ,,A``
entweder durch die Folge ,,BC``
oder durch ,,DE`` ersetzt werden darf. Dies kann durch Klammern
beeinflusst werden:
so besagt die Regel ,,A=B(C|
D)E.``,
dass ,,A`` durch ,,BCE`` oder
durch ,,BDE`` ersetzt werden darf.
Eine vollständige Dateibeschreibung könnte folgendermassen aussehen:
Die Bedeutung dieser Zeilen im einzelnen:
Der folgende Hexdump stellt eine nach obigen Schema gültige Datei dar. Diese enthält zunächst die ID. Darauf folgt die Angabe, dass genau ein Block vorhanden ist. Dieser Block enthält vier Byte. Es ist ein Datenblock und enthält die vier Byte 1E 84 95 0A. Schliesslich folgt der Name ,,Test``.
00 00 00 11 00 01 00 00 00 04 00 02 1E 84 95 0A
53 65 74 73 00 00 00 00