home *** CD-ROM | disk | FTP | other *** search
- KEYWORD Allgemeines
- TEXT
- Die Beschreibungen der Funktionsweise des
- Compilers und der Dateiformate sowie die
- Beschreibung der Routinensammmlung sind
- in den Dokumentationsdateien (*.DOC)
- enthalten.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD Inhaltsverzeichnis
- TEXT
- ΓAllgemeinesΓ ΓcheckforkeywordsΓ
- ΓcheckparametersΓ ΓcpystrΓ
- ΓerrorΓ ΓErweiterungenΓ
- ΓgenleafΓ ΓheaderΓ
- ΓHELPTEXTSTRΓ ΓKEYWORDSTRΓ
- ΓMAXLINEΓ ΓNAMEΓ
- ΓPROGΓ ΓreadfileΓ
- ΓRELEASEΓ ΓsearchΓ
- ΓshowindexΓ ΓskipnonalphasΓ
- ΓtreeΓ ΓUSAGEΓ
- ΓwritefileΓ ΓwritetextsΓ
- ΓwritetreeΓ
-
-
- KEYWORD NAME
- TEXT
- Textmakro für den Programmnamen. Er lautet FFHC.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD RELEASE
- TEXT
- Textmakro für die Version des Compilers.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD PROG
- TEXT
- Textmakro für den String, der bei jedem Aufruf
- ausgegeben wird.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD USAGE
- TEXT
- Textmakro; steht für einen kurzen Infostring
- zum Gebrauch des Programms.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD Erweiterungen
- TEXT
- Die Textmakros S_EXT und D_EXT stehen für die
- Standarderweiterung der Quell- und Zieldatei
- bzw. der Datei, für die ein Inhaltsverzeichnis
- ausgegeben werden soll (D_EXT).
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD MAXLINE
- TEXT
- Makro; steht für die maximal erlaubte Zeilen-
- anzahl in der Quelldatei; im Programm ist
- MAXLINE == 255. Diese Zahl ist nur ein "theo-
- retisches" Maximum, da normale Textmodi weniger
- Spalten darstellen.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD KEYWORDSTR
- TEXT
- Steht für den String "KEYWORD"; durch diesen
- String wird eine Schlüsselwortdeklaration
- eingeleitet.
-
- Querverweis: ΓHELPTEXTSTRΓ
- ΓInhaltsverzeichnisΓ
-
- KEYWORD HELPTEXTSTR
- TEXT
- ist im Programm als "TEXT" definiert. Es leitet
- den eigentlichen Beginn des Hilfstextes zum
- vorangegangenen Schlüsselwort ein. Hinter "TEXT"
- darf nichts stehen. Der Hilfstext beginnt also
- in der Zeile nach "TEXT".
-
- Querverweis: ΓKEYWORDSTRΓ
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD header
- TEXT
- header ist eine Struktur vom folgenden Typ:
- struct
- { char info[60]; /* Infostring */
- char eof; /* EOF-Zeichen */
- long offs; /* Dateioffset des Inh. verz. */
- char version[6]; /* Versionsstring */
- } header;
- Wie zu erkennen, wird damit eine Struktur-
- VARIABLE deklariert.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD tree
- TEXT
- tree ist eine Baumstruktur vom folgenden Typ:
- typedef struct tree
- { char *keyword; /* Zeiger auf Schlüsselwort */
- long offs; /* Offset des Hilfstextes */
- long textlen; /* Länge des Hilfstextes */
- struct tree *left, *right;
- /* Linker und rechter Nachfolger */
- } tree_t;
-
- Sie dient dazu, die Schlüsselwörter samt Datei-
- offsets und Länge der einzelnen texte zu
- verwalten.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD genleaf
- TEXT
- sortiert die angegebenen Daten in den Baum tree
- ein.
- genleaf ist folgendermaßen deklariert:
- tree_t *genleaf (char *name, long offs,
- tree_t *tree, int count);
- name: Zeiger auf den einzuordnenden Namen des
- Schlüsselwortes
- offs: Offset des Schlüsselwortes
- tree: Der Baum, in den obige Daten eingeordnet
- werden.
- Ergebnis: zurückgeliefert wird IMMER der Zeiger
- auf die Wurzel des Baumes.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD search
- TEXT
- sucht das Baumelement (Blatt), das dem
- angegebenen Schlüsselwort entspricht.
- search ist folgendermaßen deklariert:
-
- tree_t *search (char *name, tree_t *tree);
- name: Schlüselwortname
- tree: Baum, in dem zu suchen ist.
- Ergebnis: search liefert einen Zeiger auf das
- Element mit name bzw. NULL für nicht gefunden
- zurück.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD skipnonalphas
- TEXT
- skipnonalphas rückt den Dateizeiger bis zum
- nächsten Buchstaben vor - überspringt also
- alle Zeichen, die keine Buchstaben sind.
-
- Deklaration:
- FILE *skipnonalphas (FILE *fp);
- fp: Zeiger auf die gewünschte (offene) Datei.
- Zurückgeliefert wird der übergebene Dateizeiger
- mit aktualisiertem Posititionszeiger.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD readfile
- TEXT
- High-Level-Prozedur zum Einlesen der Datei.
- readfile ist wie unten angegeben deklariert:
- FILE *readfile (char *fname);
-
- fname ist der Name der einzulesenden Datei; es
- wird eine Standarderweiterung S_EXT angenommen.
-
- Zurückgeliefert wird der Dateizeiger der offenen
- Datei zur weiteren Bearbeitung durch ΓwritefileΓ.
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD checkforkeywords
- TEXT
- liest aus der Datei, um zu prüfen, ob eines der
- »Steuerschlüsselwörter« wie in ΓKEYWORDSTRΓ und
- ΓHELPTEXTSTRΓ definiert anliegt.
- Deklaration folgendermaßen:
- void checkforkeywords (FILE *fp, char *fname,
- char *type, char *res);
- fp: Zeiger auf die offene, zu bearbeitende Datei
- fname: Name der Datei; nur zur Ausgabe einer
- eventuellen Fehlermeldung bestimmt.
- type: Zeiger auf das »Steuerschlüsselwort«
- res: (Resultat); das gefundene Schlüsselwort
- (Hilfstextname) in den String kopiert, auf den
- res zeigt. Der String muß ausreichend groß
- sein.
- Wenn Parameter "/d" angegeben wurde,
- ruft checkforkeywords die Prozedur showindex
- automatisch auf.
-
-
- KEYWORD writefile
- TEXT
- High-Level-Prozedur zum Schreiben der Zieldatei.
- writefile ist deklariert:
- void writefile (char *fname, tree_t *tree,
- FILE *infile);
- fname: Name der Zieldatei
- tree: Zeiger auf die Wurzel des Schlüsselwort-
- baumes (im Programm kwtree).
- infile: Dateizeiger der offenen Eingabedatei.
- Aus der Dokumentationsdatei FFHC-DOC.DOC geht
- genaueres über das Schreiben der Zieldatei
- hervor.
-
- ΓreadfileΓ
- ΓInhaltsverzeichnisΓ
-
- KEYWORD writetexts
- TEXT
- Schreibt die Hilfstexte.
- Deklaration:
- void writetexts (tree_t *tree, FILE *infile,
- FILE *outfile);
- tree: in diesem Baum sind die Schlüsselworter
- enthalten, zu denen Hilfstexte vorhanden sind.
- infile: Dateizeiger auf offene Eingabedatei
- outfile: Dateizeiger auf offene Ausgabedatei
-
- writetexts wird aufgerufen von ΓwritefileΓ.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD writetree
- TEXT
- Schreibt das Inhaltsverzeichnis der Datei.
- Deklaration:
- void writetree (tree_t *tree, FILE *outfile);
- tree: Baum, in dem sich das Inhaltsverzeichnis
- befindet (deshalb der Name writetree).
- outfile: Ausgabedatei/Zieldatei.
-
- writetree wird aufgerufen von ΓwritefileΓ.
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD cpystr
- TEXT
- Allokiert ausreichend Speicher für den String s
- und kopiert den String s in diesen Speicher.
- zurückgeliefert wird ein Zeiger auf den neuen
- String.
- Deklaration: *cpystr (char *s);
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD showindex
- TEXT
- showindex gibt das Inhaltsverzeichnis der Ziel-
- datei fname auf stdout aus; es werden der
- Schlüsselwortname, Dateioffset und Textlänge
- angezeigt.
- showindex beendet das Programm selbstständig
- via exit.
-
- Deklaration:
- void showindex (char *fname);
-
- ΓInhaltsverzeichnisΓ
-
-
- KEYWORD checkparameters
- TEXT
- prüft die Kommandozeilenparameter.
- Wenn ein Inhaltsverzeichnis erwünscht ist, ruft
- die Funktion checkparameters die Funktion
- ΓshowindexΓ auf.
- Deklaration:
- void checkparameters (char **argv);
-
- ΓInhaltsverzeichnisΓ
-
- KEYWORD error
- TEXT
- gibt die übergebenen Parameter auf stderr aus
- und beendet das Programm.
- Deklaration:
- void error (const char *format, ...);
-
- ΓInhaltsverzeichnisΓ