![]()
![]()
![]()
Aufbau einer Katalogbeschreibung ******************************** Eine Katalogbeschreibungsdatei enthält vier Arten von Zeilen. Jede mit einem Semikolon beginnende Zeile ist eine Kommentarzeile, wird also von FlexCat ignoriert. (Eine Ausnahme sind die unten beschriebenen Stringzeilen, die sehr wohl mit einem Semikolon beginnen dürfen.) Mit einem '#' beginnende Zeilen enthalten ein Kommando. Mögliche Kommandos sind (Groß-/Kleinschreibung wird ignoriert): #language
gibt die Vorgabesprache des Programms an, d.h. die Sprache der Strings in der Katalogbeschreibungsdatei. Vorgabe ist #language english. #version gibt die Versionsnummer der zu eröffnenden Kataloge an. Im Unterschied zu Exec/OpenLibrary muß die Nummer genau stimmen, höhere Nummern werden nicht akzeptiert. Eine Ausnahme ist es, hier die 0 als Versionsnummer anzugeben, durch die jeder Katalog akzeptiert wird. Vorgabe ist #version 0. Zu diesen Befehlen siehe auch Locale/OpenCatalog. #lengthbytes Weist das Programm an, vor jeden String die angegebene Zahl von Bytes zu schreiben, die die Länge des Strings (ohne die lengthbytes) enthalten und ohne abschließendes NUL-Byte angeben. (Ein NUL-Byte wird in Katalogen aber trotzdem angehängt, im erzeugten Quelltext ist dies von der Quelltextbeschreibungsdatei abhängig.) muß zwischen 0 und sizeof(long)=4 liegen. Vorgabe ist #lengthbytes 0. #basename Setzt den Basisnamen für die Quelltextbeschreibung. Der aus den Argumenten beim Aufruf des Programmnamens gewonnene Basisname (siehe Programmstart) wird überschrieben. Siehe Source description. deklarieren einen String. Sie haben die Form IDSTR (id/minlen/maxlen), wobei IDSTR ein Bezeichner ist (d.h. ein aus den Zeichen a-z,A-Z,0-9 und dem Underscore bestehender String), id eine eindeutige Nummer (die von jetzt an als ID bezeichnet wird) angibt, minlen die minimale und maxlen die maximale Länge des Strings. Die drei letztgenannten dürfen auch fehlen, das Programm wählt dann selbst einen Wert für id und erlaubt Strings beliebiger Länge. Die auf eine Beschreibungszeile folgende ist eine d.h. sie enthält den eigentlichen String und nichts anderes. Dieser darf eine Reihe von Steuerzeichen enthalten, die alle durch einen Backslash eingeleitet werden: \b Backspace (Ascii 8) \c Control Sequence Introducer (Ascii 155) \e Escape (Ascii 27) \f Form Feed (Ascii 12) \g Display beep (Ascii 7) \n Line Feed, newline (Ascii 10) \r Carriage Return (Ascii 13) \t Tab (Ascii 9) \v Vertical tab (Ascii 11) \) Das Klammer-Zu-Zeichen. (Dies ist evtl. innerhalb einer %(..)-Sequenz nötig, siehe Source description.) \\ Der Backslash selbst. \xHH Das durch HH gegebene Ascii-Zeichen, wobei HH Hexziffern sind. \OOO Das durch OOO gegebene Ascii-Zeichen, wobei OOO Hexziffern sind. Schließlich signalisiert ein einzelner Backslash am Zeilenende, daß die Zeile (und damit der String) auf der nächsten Zeile fortgesetzt wird. Es ist dadurch möglich, beliebig lange Strings zu definieren. (FlexCat ist lediglich durch das verfügbare RAM eingeschränkt.) Ein String wird also stets durch eine Beschreibungszeile und eine unmittelbar darauffolgende Stringzeile angegeben. Ein Beispiel wäre msgHello (/4/) Hello, this is english!\n In diesem Beispiel fehlt die ID, wird also vom Programm festgesetzt. (Dies ist sicher der einfachste und beste Weg.) Die 4 gibt hier an, daß der in der nächsten Zeile stehende String wenigstens 4 Zeichen enthalten soll, eine maximale Länge fehlt. Als ausführlicheres Beispiel zum Aufbau einer Katalogbeschreibungsdatei kann die Datei FlexCat.cd dienen.