<< Inhaltsverzeichnis Suchen >>

Programm - Generator

Der Programm-Generator erzeugt nach Eingabe des Programm-Namens und der Generierungsparameter anhand der Programm-Beschreibung den C-Quellcode.

 

Wie wird mit dem EBUS-GENERATOR-C ein ausführbares Programm erzeugt?

Das vollständige Erstellen eines Programms besteht aus folgenden Schritten:

a)      Programm-Erstellung

b)      Überprüfung auf formale Richtigkeit

c)      Programm-Generierung

d)      Erzeugen des ausführbaren Programms mit Hilfe des C-Compilers

 

a) Programm-Erstellung

Vor der Programm-Generierung müssen die im Programm verwendeten Indexdateien, die Programm-Beschreibung, die Report-Beschreibungen und die Macros erstellt worden sein.

 

b) Überprüfung auf formale Richtigkeit

Die Macros sollten mit dem Macro-Compiler auf formale Richtigkeit geprüft worden sein. Die Überprüfung der Programm-Masken auf Konsistenz ist nur notwendig, wenn bei der Generierung ein Fehler auftritt.

 

c) Programm-Generierung

Im Menuepunkt Generator wird der C-Quellcode des Programms generiert. Der Generator erzeugt dazu folgende Dateien:

<programm-name>.c

enthält den C-Quellcode.

<programm-name>.h

ist die Include-Datei für <programm-name>.c .

ebuscX.c

X steht für eine vom Programmgenerator vergebene Zahl. Diese Dateien werden nur dann erzeugt, wenn bei der Generierung Folgeprogramme mitgeneriert werden und dasselbe Unterprogramm mehrfach für verschiedene Hauptprogramme generiert wird.

ebuscX.h

ist die Include-Datei für ebuscX.c .

<programm-name>.rc

ist die Resourcedatei bei WINDOWS-Programmen.

<programm-name>.inf

enthält Informationen über die letzte Generierung.

Der Programm-Generator schreibt im aktuellen Verzeichnis in die Datei ebuscc.bat (bei Generierung für MS-DOS) bzw. ebuscc (bei Generierung für UNIX) die Kommandos zum Übersetzen und Binden des Quellcodes zu einem ausführbaren EBUS-Programm.

Mit dem Programm-Generator können ganze Programmsysteme in einem Lauf generiert werden.

 

d) Erzeugen des ausführbaren EBUS-Programms

Der C-Compiler kann am Ende der Generierung mit <F10> gestartet werden. Eine andere Möglichkeit ist das Verlassen des Generators und der Start der Batchdatei ebuscc.bat (MS-DOS) bzw. ebuscc (UNIX) auf Betriebssystemebene durch Eingabe von <ebuscc>. Diese Kommando-Prozedur übersetzt und bindet den C-Quellcode zu dem (den) ausführbaren EBUS-Programm(en) <programm-name>.exe (MS-DOS) bzw. <programm-name> (UNIX).

Voraussetzung für die erfolgreiche Compilierung des generierten C-Quellcodes ist das Vorhandensein eines vom EBUS-GENERATOR-C unterstützten C-Compilers und eine richtige Installation des EBUS-GENERATOR-C.

Bei der Generierung eines Programms für MS-DOS oder WINDOWS 16-Bit wird in die Datei ebuscc.bat

IF EXIST EBUSCC16.BAT CALL EBUSCC16.BAT

und bei Programmen für WINDOWS 32-Bit

IF EXIST EBUSCC32.BAT CALL EBUSCC32.BAT

geschrieben. Ist die entsprechende Datei (ebuscc16.bat bzw. ebuscc32.bat) vorhanden, so wird sie vor dem Aufruf des Compilers ausgeführt. In diesen Dateien können die Environmentvariablen des Compilers gesetzt werden. Dadurch ist es möglich, für 16-Bit und 32-Bit verschiedene Compiler zu verwenden.

 

Starten eines ausführbaren EBUS-Programms

Durch Eingabe des Programm-Namens auf Betriebssystem-Ebene wird das entsprechende EBUS-Programm gestartet. Im ausführbaren Programm ist alles enthalten, was zum Ablauf des Programms benötigt wird. Lediglich bei WINDOWS-Programmen, die mit DLL generiert wurden, muß die aktuelle EBUSV<NR>.DLL (<NR> ist die Versionsnummer des EBUS-GENERATOR-C) vorhanden sein. Sonst werden keine weiteren Dateien benötigt. Alle im Programm verwendeten Icons und Bitmaps werden automatisch in die EXE-Datei mit eingebunden.

 

Eingabe der Generator-Parameter

Funktionstasten

<F2>

Auswahl Programm-Namen

<F5>

Löschen der Dateien ebuscc.*. Dies ist notwendig, wenn nach der Generierung die generierten Programme aus irgendwelchen Gründen nicht compiliert werden sollen.

<F6>

Folgende Generator-Parameter können bearbeitet werden:

 

Compilieren mit
Optimierung ?

Bei <J> wird die Optimierungsfunktion des C-Compilers ein- und bei <N> ausgeschaltet.

 

WINDOWS-
Programme
mit DLL ?

Bei <J> benötigt das erzeugte EBUS-Programm zur Laufzeit die Datei EBUSV<NR>.DLL (NR ist die Versionsnummer des EBUS-GENERATOR-C). Bei <N> benötigt das erzeugte EXE-Programm keine weiteren Dateien.

 

Compilierung
nach Generie-
rung automa-
tisch starten ?

Bei <J> wird am Ende der Generierung automatisch der C-Compiler gestartet.

 

Einzeln generierte Unterprogramme linken ?

<J>: Enthält ein EBUS-Programm Unterprogramme und wird ein einzelnes Unterprogramm oder werden mehrere Unterprogramme des Hauptprogramms allein generiert, so wird nach der Compilierung das Hauptprogramm erneut gelinkt. Dies ist aber nur möglich, wenn das Hauptprogramm bereits wenigstens einmal komplett mit allen Unterprogrammen generiert wurde. Beim MS-C++ WINDOWS-32-Bit-Compiler wird dabei der besonders schnelle inkrementelle Link verwendet.

 

Programm nach Generierung automatisch starten ?

Bei <J> wird das generierte Programm nach der Compilierung sofort gestartet.

 

Generierungs-
Meldungen
anzeigen ?

Bei <J> werden detaillierte Meldungen über den Fortschritt der Generierung am Bildschirm angezeigt. Bei <N> wird nur jeweils der Programm-Name des gerade generierten Programms angezeigt. Unter WINDOWS wird für die graphische Bildschirmanzeige eine spürbare Rechenzeit benötigt. Bei der Generierung vieler Programme führt das Setzen dieses Parameters auf <N> zu einer deutlichen Beschleunigung des Generierungsvorgangs.

 

Object-Dateien
nach Compilie-
rung löschen ?

Bei <J> werden die bei der Compilierung mit dem C-Compiler erzeugten Objectdateien nach dem Binden des Programms wieder gelöscht. Bei <N> bleiben sie erhalten. Dies ist sinnvoll, wenn ein Programm aus vielen Unterprogrammen besteht und später nur einzelne Unterprogramme nachgeneriert werden sollen. Dann kann nach der Generierung und Compilierung des einzelnen Programms der Linkvorgang (z.B. LINK @ebusc1.inp) manuell ausgeführt werden. Es müssen dann nicht alle Programme neu generiert und compiliert werden.

 

Dateien .c und
.h nach Compi-
lierung löschen
?

Die vom Generator erzeugten .c- und .h-Dateien können nach dem Compilieren immer gelöscht werden, da sie nicht weiter benötigt werden und über den Generator stets neu erzeugt werden können.

 

Compiler-Code

Legt bei der Generierung für MS-DOS fest, für welchen Prozessortyp der Code erzeugt werden soll.

 

Maximale
Windowtiefe

Legt die Maximalanzahl der Windows fest, die im EBUS-Programm gleichzeitig geöffnet werden können.

 

Größe der
Locktabelle

Legt fest, wieviele Datensätze im EBUS-Programm maximal gleichzeitig gesperrt werden können. Diese Maximal­anzahl bezieht sich auf die Gesamtanzahl der gesperrten Datensätze aller Dateien, und nicht auf die einzelne Datei.

 

Größe des Stack

Die Größe des Programm-Stacks kann bei der Generierung für MS-DOS und WINDOWS individuell eingestellt werden. Es wird empfohlen, die voreingestellten Werte nur dann zu ändern, wenn im generierten EBUS-Programm der Fehler 'Stack-Overflow' gemeldet wird.

 

MS-DOS-
Farben im
Programm ...

Für die sieben Farbparameter NORMAL, INTENSIVE, INVERSE, DARK, STANDARD, MESSAGE und HEADER kann die Farbzusammensetztung aus Vorder- und Hintergrund festgelegt werden. Diese Farben haben nur eine Bedeutung bei MS-DOS und UNIX, und unter WINDOWS nur bei DISABLE GR_STANDARD_COLOR.

Mit den Cursortasten <¬>, <­>, <®> und <¯> wandert die aktuelle Position in der rechten Farb-Matrix und die Farbwerte der aktuellen Farbe werden entsprechend angezeigt. Mit <RETURN> bzw. <®|> kann zum nächsten und mit <|¬> zum vorhergehenden Eingabefeld gesprungen werden. Mit der Maus können Farben in der Farb-Matrix direkt ausgewählt werden.

 

 

Bedeutung der Farbcodes:

Zahl       Farbe
  0           schwarz
  1           blau
  2           grün
  3           kobaltblau
  4           rot
  5           violett
  6           braun
  7           weiß
  8           grau
  9           hellblau
10          hellgrün
11          hellkobaltblau
12          hellrot
13          hellviolett
14          gelb
15          intensiv-weiß

 

Java-Parameter

Hier werden Parameter für die Generierung und das Starten von Java-Programmen festgelegt.

 

 

Memory für
Java-Compiler

Bei großen Programmen kann es vorkommen, daß Java-Compiler den Fehler 'Out of Memory' meldet. Dann muß die in diesem Feld eingetragene Anzahl Megabyte erhöht werden. Der Mindestwert ist 128 MB.

 

 

Memory für
Programm

Legt das Memory für das anzuführende Java-Programm fest. Der Mindestwert ist 64 MB.

 

 

.ico ersetzen durch

Unter Java wird das Windows-Iconformat '.ico' nicht unterstützt. Deshalb können Windows-Icons auch nicht aus dem vom Generator erzeugten Jar-Archiv gelesen werden. Hier wird angegeben, welche Dateien anstelle der Icons in das Jar-Archiv eingetragen werden sollen.

 

 

Name des
2T-Servers

Wird im Generator mit <SHIFT/F1> ein Java-2T-Programm oder ein Java-Applet-Programm gestartet, so muß das Programm den Namen des 2T-Servers kennen. Dieser Name kann hier angegeben und wird in Aufrufprozedur als Vorbelegung eingetragen.

<F7>

Historie-Auswahl: Die letzten 20 benutzen Programm-Namen werden sortiert nach der Reihenfolge des letzten Zugriffs angezeigt.

<F8>

Die Voreinstellung der Schalter ENABLE/DISABLE für den Programmstart kann festgelegt werden. Bei der ersten Generierung eines Programm sind alle Schalter eingeschaltet (ENABLE).

<F9>

Auswahl des Compilers und des Ziel-Betriebssystems, für das die Generierung erfolgen soll.

<F10>

Der C-Compiler wird gestartet. Es muß zuvor ein Programm generiert worden sein, andernfalls erscheint die Fehlermeldung:

Kommandodatei EBUSCC.BAT ist leer

<F12>

Der Programm-Generator wird gestartet.

<SHIFT/F1>

Das bei Programm-Name angegebene Programm wird gestartet. Ist das Programm ein Unterprogramm, so wird das zugehörige Hauptprogramm gestartet.


Eingabefelder

 

Programm-Name

Bei einer leeren Eingabe oder mit <F2> werden auf dem Bildschirm alle vorhandenen Programm-Beschreibungen angezeigt. Mit Hilfe der Cursortasten und <RETURN> kann ein Programm-Name ausgewählt werden.

 

Übernehmen
Parameter
von der letzten
Generierung ?

Bei Eingabe von <J> wird das Programm genauso wie beim letztenmal generiert. Sollen Änderungen aus dem Menuepunkt Parameter bei der Generierung wirksam werden (z.B. eine geänderte Tastenbelegung im generierten Programm), so muß hier <N> eingegeben werden.

 

 

<J>

Die Parameter von der letzten Generierung des Programms werden übernommen. Nach Beantwortung der weiteren Fragen:

 

 

 

Generieren alle Folge-Programme (CHAIN/RUN)?
Generierenalle Unter-Programme (CALL)?

und

Unterprogramme als Overlay ?

 

 

 

wird sofort der Generator-Lauf gestartet.

 

 

 

Die Einstellungen aus dem Menuepunkt Parameter, die das generierte EBUS-Programm betreffen, werden nicht wirksam. Es werden die Parameter der letzten Generierung übernommen.

 

 

<N>

Alle Generierungsparameter werden aus dem Menuepunkt Parameter übernommen.

 

Generieren alle
Folge-Programme
(CHAIN/RUN) ?

<J>

Alle Folgeprogramme – das sind Programme, die in Macros durch die Anweisungen CHAIN oder RUN aufgerufen werden – werden automatisch mitgeneriert, sofern der Programm-Name in der CHAIN- oder RUN-Anweisung als Konstante und nicht als Variable  angegeben wurde.

Bei der Generierung für Java können keine Folgeprogramme generiert werden. Dies liegt daran, daß Unterprogramme von mehreren Hauptprogrammen aus aufgerufen werden können. Unter Java muß der Name der Java-Datei identisch sein mit der darin enthaltenen Klasse (Unterprogramm). Es ist nicht möglich, ein Unterprogramm zu generieren, das für alle Hauptprogramme gilt, da jedes Unterprogramm zu jedem Hauptprogramm anders generiert wird.

 

 

 

Das Folgeprogramm bei Programmende, das in der Programm-Beschreibung angegeben werden kann, wird nicht automatisch generiert.

 

<N>

Folgeprogramme werden nicht mitgeneriert.

 

 

 

 

 


Beispiel:

 

CHAIN "PROG2"

Folgeprogramm kann automatisch generiert werden.

H$ = "PROG3"
CHAIN H$

Das Folgeprogramm kann nicht automatisch generiert werden, da der Name des Programms nicht explizit in der CHAIN-Anweisung vorkommt.

 

 

Generieren alle
Unter-Programme
(CALL) ?

<J>

Alle EBUS-Unterprogramme – das sind Programme, die mit CALL <PROGRAMM-NAME> aufgerufen werden – werden mitgeneriert. Besitzt ein Programm externe Unterprogramme (Aufruf: CALL <PROGRAMM-NAME>(...) ), dann müssen diese separat compiliert und in die Link-Routine eingetragen oder in die entsprechende EBUS-Link-Bibliothek eingebunden werden.

 

 

<N>

Unterprogramme werden nicht mitgeneriert.

 

 

 

 

Achtung: Die Generierung von Unterprogrammen ist vom Hauptprogramm abhängig. Ändert sich im Hauptprogramm z.B. die Anzahl der Indexdateien oder die Anzahl der verwendeten Variablen, so müssen auch alle Unterprogramme neu generiert werden, da sonst die Unterprogramme nicht mehr zum Hauptprogramm "passen". Im Zweifelsfall sollten immer alle Programme neu generiert werden.

 

 

 

Unterprogramme
als Overlay ?

Dieser Parameter hat nur eine Bedeutung, wenn Programme für MS-DOS generiert werden. Bei <J> werden alle Unterprogramme als Overlay gebunden. Dadurch wird der vom EBUS-Programm benötigte Hauptspeicherplatz (RAM) reduziert.

 

Generieren
Testhilfe für
Macros ?

<J>

In jedem Macro wird zusätzlicher Code erzeugt, der zur Laufzeit des EBUS-Programms den aktuellen Macro-Namen mit der aktuellen Zeilennummer und die gerade ausgeführte Anweisung in der Meldungszeile anzeigt. Bei WINDOWS-Programmen erfolgt die Anzeige über DDE in einem eigenen Programm (EBUSTH.EXE). Unter Java werden die Meldungen in einem eigenen Fenster angezeigt. Mit TRACEOUT können die Meldungen in eine Datei oder auf die Standardausgabe umgeleitet werden.

 

 

<N>

Es wird kein zusätzlicher Code generiert.

 

Überprüfung
Einhaltung der
Array-Grenzen ?

<J>

Arrays (das sind mit der Anweisung DIM erzeugte Bereiche) werden über Indices adressiert. Die Indices müssen sich im zulässigen Bereich (0 bis <NR>, <NR> ist die Zahl in der DIM-Anweisung) bewegen, andernfalls können unvorhersehbare Fehler auftreten. Wird dieser Parameter auf <J> gesetzt, so wird bei jedem Zugriff auf ein Array zusätzlicher Code erzeugt, der die Einhaltung der Array-Grenzen überprüft. Wird ein Fehler festgestellt, so erscheint am Bildschirm ein Fenster, in dem der Array-Name, der fehlerhafte Index, der Macro-Name und die Zeilennummer innerhalb des Macros angezeigt werden.

 

 

<N>

Es wird kein zusätzlicher Code erzeugt.

 

Unterprogramm ?

<J>

Das Programm wird als Unterprogramm generiert, d.h. das Programm wird von einem anderen Programm als Unterprogramm aufgerufen werden. Bei  Hauptprogramm-Name muß der entsprechende Programm-Name angegeben werden.

Wird ein Unterprogramm allein generiert, so wird nur die Übersetzungsprozedur für den Compiler erzeugt, nicht aber die Link-Prozedur.

 

 

<N>

Das Programm wird als Hauptprogramm generiert, d.h. es ist ein selbstständiges Programm, das vom Betriebssystem aus gestartet werden kann. In anderen Programmen kann es nicht mit der CALL-Anweisung aufgerufen werden, sondern nur mit CHAIN oder RUN als Folgeprogramm gestartet werden.

 

Hauptprogramm-
Name

Wird bei Unterprogramm <J> eingegeben, muß hier der Name des zugehörigen Hauptprogrammes angegeben werden.

 

 

Fluchttaste ESC
oder HOME ?

Legt die Rücksprungtaste im EBUS-Programm fest.

 

Generieren
Integer- Arrays
SHORT oder
LONG ?

Legt die Generierung der Integer-Arrays (z.B. DIM T%(1000)) fest. Bei SHORT werden nur 2 Bytes pro Arrayelement benötigt, allerdings können dann nur Werte von -32767 bis +32767 gespeichert werden. Bei LONG werden 4 Bytes pro Arrayelement benötigt. Es können dann Zahlen von -2 Milliarden bis +2 Milliarden gespeichert werden.

 

Maskenhinter-
grund

Dieser Parameter hat keine Bedeutung bei WINDOWS-Programmen.

Es wird festgelegt, in welcher Farbe und mit welchen Rand die Masken am Bildschirm angezeigt werden:

 

 

NORMAL

Schwarz/Weiß-Darstellung ohne Maskenrand

 

 

RAND

Schwarz/Weiß-Darstellung mit Maskenrand

 

 

INVERS

Weiß/Schwarz-Darstellung ohne Maskenrand

 

 

FARBE

Farben gemäß der Festlegung mit <F6> (Parameter)

 

Datumsformat

Das Datumsformat steuert nur die Darstellung auf dem Bildschirm und auf den Reports, die interne Darstellung in den zugehörigen Variablen ist immer JJMMTT bzw. JJJJMMTT.

 

Trennzeichen bei
Datum

Das eingegebene Zeichen (<.> oder </> oder <->) trennt bei der Anzeige von Datumsfeldern auf dem Bildschirm oder im Report Tag, Monat und Jahr.

 

 

 

 

 


Beispiel:

 

Intern                  Format                Trennz.                Anzeige am Bildschirm
951231                TTMMJJ              /                                           31/12/95

 

Properties-Datei erzeugen (Java)

Wenn ein Java-Programm die Mehrsprachigkeit unterstützen soll, muß diese Checkbox gesetzt werden. Die Generierungszeit erhöht sich dann deutlich, da alle Texte des Hauptprogramms und aller Unterprogramme in die Datei <PROGRAMM-NAME>.properties geschrieben werden.

 

Füllzeichen für
Leerstellen

Dieser Parameter hat keine Bedeutung bei WINDOWS-Programmen.

Das eingegebene Zeichen ersetzt zur Laufzeit bei alphanumerischen Maskenfeldern die nachfolgenden Blanks und bei numerischen Maskenfeldern mit Nullunterdrückung die führenden Nullen.

 

 

Laufwerk/Pfad
für
Folgeprogramm

Wenn bei der Programm-Beschreibung ein Folgeprogramm bei Programmende angegeben wurde, kann hier das Verzeichnis angegeben werden, in dem sich das Folgeprogramm befindet.

 

Nach diesen Eingaben oder durch <F12> oder <CTRL/E> wird der Generator-Lauf gestartet. Werden im Programm Indexdateien verwendet und wurde bei Übernehmen Parameter von der letzten Generierung <N> eingegeben, müssen in einer weiteren Maske die Zugriffsart und die Pfade für die im Programm verwendeten Indexdateien festgelegt werden. Es erscheint ein Fenster mit folgenden Feldern:

Datei Zu         O           Laufwerk/Pfad

In der Spalte Datei sind die Namen der Indexdateien aufgelistet.

In der Spalte Zu wird die Zugriffsart auf die Indexdatei durch das generierte Programm angezeigt: L steht für Lese-Zugriffe, S steht für Schreib-Zugriffe. Die hier angezeigte Zugriffsart bezieht sich nur auf das Hauptprogramm und nicht auf Unterprogramme.

In den Spalten O (Open-Modus) und Laufwerk/Pfad werden folgende Eingaben erwartet:

O

<S>

Single-User: Im generierten Programm werden beim Zugriff auf Indexdateien keine Sätze gesperrt.

 

<M>

Multi-User: Mehrere Programme können konkurrierend auf die Indexdatei zugreifen. Der gerade bearbeitete Datensatz wird vom Programm jeweils automatisch für andere Zugreifer gesperrt.

 

<E>

Multi-User exklusiv: Wenn eine Datei exklusiv geöffnet ist, so können andere Programme solange nicht zugreifen, bis das Programm beendet wird. Kann die Indexdatei bei Programmbeginn nicht exklusiv geöffnet werden, so wird das Programm mit Fehler abgebrochen.

 

<R>

Multi-User Read only: Das Programm kann nur lesend auf die Indexdatei zugreifen. Dadurch werden die gelesenen Sätze nur für die Zeit des Lesens gesperrt und danach sofort wieder freigegeben, d.h. die Datensätze werden für andere Programme nicht "blockiert".

Laufwerk/Pfad

Legt das Verzeichnis (directory) fest, in dem sich die zu öffnende Indexdatei befindet. Im EBUS-Programm kann im Init-Macro vor Index-Open diese Pfadangabe mit der Anweisung PATH beliebig geändert werden.

 

 

Entwicklung für ein fremdes Betriebssystem

Mit dem EBUS-GENERATOR-C ist es möglich, z.B. unter MS-DOS Programme für UNIX oder WINDOWS NT zu entwickeln und zu generieren. Nach der Generierung müssen folgende Dateien zum Zielsystem übertragen werden:

 

Datei

Inhalt

<programm>.c

Datei mit generiertem C-Quellcode

<programm>.h

Include-Datei für <programm>.c

ebuscc (UNIX) ebuscc.bat
(MS-DOS)

Batchdatei mit Compileraufruf: Diese Dateien werden immer im aktueller Verzeichnis (directory) angelegt. Dies ist i.a. nicht das Verzeichnis, in dem sich die aktuell bearbeiteten Daten befinden.

ebuscX.c

X steht für eine vom Programmgenerator vergebene Zahl. Diese Dateien werden nur dann erzeugt, wenn bei der Generierung Folgeprogramme mitgeneriert wurden und dasselbe Unterprogramm mehrfach für verschiedene Hauptprogramme generiert wurde.

ebuscX.h

Include-Datei für ebuscX.c

 

 

Achtung: Auf dem Zielsystem müssen der C-Compiler, die EBUS-Link-Bibliothek (MS-DOS/WINDOWS: ebuscXXX.lib, UNIX: libebusc.a), die Include-Datei ebus.h und die Steuerdatei ebusesc.dat (nur UNIX) installiert sein.

Nach dem Übertragen der Dateien wird auf dem Zielsystem durch Aufruf der Batchdatei (MS-DOS/WINDOWS: ebuscc, UNIX: sh ebuscc) das ausführbare Programm erzeugt.

 

 


Beispiel:

 

Programm:
Kunden

Ausführbares Programm:

zu übertragende Dateien:
nach MS-DOS/WINDOWS:            kunden.c kunden.h ebuscc.bat
nach UNIX:                                       kunden.c kunden.h ebuscc
kunden.exe (MS-DOS) bzw. kunden (UNIX)

 

Die Batch-Dateien ebuscc.bat (MS-DOS/WINDOWS) und ebuscc (UNIX)

Bei jedem Start des EBUS-GENERATOR-C werden die Batchdateien ebuscc.bat und ebuscc gelöscht.

Bei jedem Generator-Lauf werden die Kommandos für das Übersetzen und Binden der erzeugten C-Programme an das Dateiende von ebuscc.bat (Generierung für MS-DOS/WINDOWS) bzw. ebuscc (Generierung für UNIX) angefügt.

Mit <F5> kann diese Datei gelöscht werden. Dies ist dann ratsam, wenn das Programm nach der Generierung geändert wird und erneut generiert werden soll. Wird die Datei ebuscc.bat vor dem erneuten Generator-Lauf nicht gelöscht worden, so wird beim Aufruf von ebuscc das generierte C-Programm infolge der mehrfach erzeugten Kommandozeilen mehrfach übersetzt. Das mehrfache Übersetzen führt jedoch zu keinem Fehler, es kostet nur Rechenzeit.

Andererseits darf die Datei ebuscc.bat bzw. ebuscc dann nicht gelöscht werden, wenn verschiedene Programme hintereinander generiert werden, die anschließend übersetzt werden sollen.

 

Fehlerbehandlung mit der Programm-Überprüfung

Wird eine fehlerhafte Maske oder ein fehlerhafter Macro gefunden, wird der Fehler gemeldet und der Generator-Lauf abgebrochen.

Da der Generator-Lauf beim ersten gefundenen Fehler abgebrochen wird und im Programm-Generator kein Fehlerkorrektur-Mechanismus vorhanden ist, müssen die Macros des Programms mit dem Macro-Compiler und die Masken mit der Programm-Überprüfung auf Fehlerfreiheit getestet werden. Meldet der Programm-Generator den Fehler

Datei-Beschreibung ist fehlerhaft,

so deutet dies darauf hin, daß ein Maskenfeld mit einer nicht mehr existierenden Indexdatei-Variablen verknüpft ist.