6-1 Fehlermeldungen des Omikron Basics Inhalt | 6-3 Fehlermeldungen des MacOS


Kapitel 6-2

Fehlermeldungen des Omikron Basic Compilers

Fehlermeldungen des Compilers werden während des Übersetzungsvorgangs im Compiler-Fenster ausgegeben und führen zum Abbruch des Compilierens. Durch Anklicken der Fehlermeldung kann gleich an die entsprechende Stelle im Programm gesprungen werden.

Falscher Gebrauch von DEFAULT
DEFAULT oder OTHERWISE müssen immer die letzten Zweige einer SELECT ... CASE Struktur sein.

MEMORY_BLOCK zu lang
Es wurde versucht, einen MEMORY_BLOCK zu definieren, der größer als 32 MB ist.

Struktur ist zu lang
Omikron Basic erlaubt bei IF ... THEN ... ELSE ... ENDIF, FOR ... NEXT, REPEAT ... UNTIL und WHILE ... WEND Strukturlängen von bis zu 32 MB, so daß diese Fehlermeldung hierbei kaum noch auftreten kann. SELECT ... CASE ... END_SELECT Strukturen dürfen allerdings maximal 32 KB umfassen und können daher zu dieser Meldung führen. Als Abhilfe empfiehlt es sich, Programmteile aus der Struktur auszulagen (zum Beispiel, indem man sie in eine Prozedur packt und diese dann aus der Struktur heraus aufruft).

SWAP-Typ passt nicht
Hinter einem SWAP-Befehl stehen unterschiedliche Variablentypen.

Typ passt nicht
Sie versuchen beim Aufruf einer Prozedur eine Zahl an einen String zu übergeben oder umgekehrt.

Uncompilierte Modify-Operation
+= und *= sind zusammen mit Strings nicht erlaubt.

Undefinierte Statements oder DIMs
GOTO, GOSUB etc. zeigen auf Zeilen oder Labels, die nicht existieren. Ein Variablenfeld muß dimensioniert werden, bevor es benutzt wird. Nach jedem CLEAR müssen Felder neu dimensioniert werden.

Unerlaubte Konstanten-Zuweisung
Sie haben einer Konstanten mindestens zweimal einen Wert zugewiesen oder der Ausdruck, den Sie der Konstante zuweisen wollen, ist nicht konstant. 

Unerlaubter Konstanten-Typ
Felder und Strings sind als Konstanten nicht zugelassen. Verwenden Sie als Konstanten nur Einzel-Variablen.

Unerlaubtes EXIT
EXIT darf nur ohne Parameter, als EXIT 1 oder als EXIT -1 benutzt werden. EXIT TO ist nur zum Verlassen einer Schleife erlaubt, nicht aber zum Verlassen von Prozeduren und Funktionen.

Ungleiche Matrixtypen
Es wurde versucht, eine Matrix-Operation auf zwei Matrizen unterschiedlichen Datentyps anzuwenden.

Zu viele Konstanten
Da der PowerPC-Prozessor keine Immediate-Operanden mit mehr als 16 Bit erlaubt, müssen alle Konstanten in einer Tabelle untergebracht werden. Omikron Basic reserviert dafür 64 KB. Wenn Sie mehr Konstanten benutzen, als in diese Tabelle passen, erscheint diese Fehlermeldung.

Zu viele Parameter
Dem Befehl MAC_OS wurden zu viele Parameter übergeben. Für die Übergabe von Parametern stehen maximal 252 Byte zur Verfügung.

Zu viele Variablen
Der Variablenbereich in Omikron Basic umfaßt 64K. Die Werte von Einzelvariablen befinden sich direkt in diesem Speicherbereich, während bei Strings und Feldern nur ein Pointer auf das entsprechende Objekt im Variablensegment angelegt wird. Auch sehr lange Programme über 1 MB benötigen im allgemeinen kaum mehr als 16K für Ihre Variablen. Sollten Sie doch einmal Probleme haben, so können Sie Platz einsparen, indem Sie  statt Einzelvariablen Feldelemente verwenden (z.B. statt A0,A1,A2,A3,A4,A5   A(0),A(1),A(2),A(3),A(4),A(5)). Dann werden statt der 24 Byte für die 6 Einzelvariablen nur noch 4 Byte für den Array-Pointer benötigt.

Zu wenig Speicher reserviert
Der Compiler hat nicht genug freien Speicher zur Verfügung, um das Programm zu Ende zu übersetzen. Sie können in dem Menü 'Modus/Speichereinstellungen' dem Omikron Basic mehr Speicher zuweisen. Weitere Erklärungen sind in dem Kapitel 'Der Editor' zu finden.

Falscher RETURN-Typ
Eine mehrzeilige Funktion muß den Variablentyp zurückgeben, den sie als Postfix im Namen trägt.

Falsch: DEF FN Addiere(X$,Y$):RETURN X$+Y$ (Es wird String zurückgegeben, obwohl die Funktion vom Typ Long-Integer ist.)
Richtig: DEF FN Addiere$(X$,Y$):RETURN X$+Y$

Hinweis:
Es können noch eine Reihe anderer Fehlermeldungen auftreten. Diese sind entweder selbsterklärend (z.B. IF ohne THEN) oder für die Programmierer des Omikron Basics bestimmt, um Fehler im Compiler ausfindig zu machen. Sollte eine für Sie unverständliche Fehlermeldung auftreten, so schicken Sie bitte das Programm, bei dessen Compilierung dieser Fehler auftritt, an Berkhan-Software, Entwicklung und Vertrieb, Alt-Isenhagen 19, D-29386 Hankensbüttel, Germany.

   

Warnmeldungen des Compilers
werden während des Übersetzungsvorgangs im Compilerfenster ausgegeben und stellen Warnungen oder Hinweise dar, die zu Problemen bei der späteren Programmausführung führen können. Die Compilierung wird in diesem Fall aber nicht abgebrochen.

Hinweis: Warnmeldungen des Compilers können mit COMPILER "WARNINGS OFF" abgeschaltet werden.

Befehl ist nicht implementiert
Sie haben einen Befehl benutzt, der in Omikron Basic nicht implementiert ist. Sie müssen diesen Befehl durch andere ersetzen.
 
Division durch Null-Konstante
Es wurde durch eine Konstante definiert, die den Wert 0 hat.

FPU-Überlauf
Dieser Warnhinweis tritt auf, wenn während der Übersetzungszeit in ein Fließkommaformat gewandelt wird, das die gewünschte Zahl nicht darstellen kann, weil sie zu groß oder zu klein ist.

INLINE-Länge muß ein Vielfaches von 8 sein
Da jeder PowerPC-Befehl genau 4 Byte lang ist und man zur Kodierung von 4 Byte 8 Hexadezimalzahlen benötigt, muß die Länge des Stringausdrucke hinter INLINE ein Vielfaches von 8 sein.

MEMORY_BLOCK hat falsche Größe
Ein MEMORY_BLOCK hat nicht die Größe, die er nach den Angaben im Befehl haben müßte. So etwas kann passieren, wenn der gleiche Block mehrmals definiert wurde (Der Identifier hinter dem Befehl darf nur einmal verwendet werden).

Tokenizer Fehlerzeile - : XXXXX
Der Compiler ist auf eine Zeile gestoßen, die schon vom Tokenizer des Editors als fehlerhaft markiert wurde.

Unbenutzte Statements
Die nach der Warnung aufgelisteten Prozeduren, Funktionen und Labels werden im gesamten Programm nicht benutzt. Sie können also gelöscht oder auskommentiert werden. 

Unerlaubtes COMPILER-Statement
Es wurde ein Compiler-Steuerwort benutzt, das es nicht gibt. Der Fehler kann also nur in Zeilen mit COMPILER-Anweisungen auftreten.

Unerlaubtes ON ...
Der Befehl ON wurde in einer unzulässigen Syntax verwendet.

Zahlenbereich überschritten
Sie haben versucht, einer Integer-Konstanten einen Wert zuzuweisen, der außerhalb des Wertebereichs dieses Typs liegt.

XYZ doppelt definiert
Die Prozedur oder Funktion oder das Label XYZ wurde doppelt definiert. Die Compilierung wird fortgestzt, da sich trotz der doppelten Definition ein lauffähiges Programm erzeugen läßt. Dabei geht der Compiler wie folgt vor:
Alle Aufrufe, die in den Zeilen vor der ersten Definition stehen, zeigen auf die erste Definition. Das gleiche gilt für alle Aufrufe, die sich zwischen der ersten und der zweiten Definition befinden. Erst alle Aufrufe hinter der zweiten Definition zeigen auch auf diese.
Doppelte Definitionen entstehen in der Regel ungewollt und sollten durch Umbenennen der einen Prozedur bzw. Funktion vermieden werden. Es kann jedoch auch durchaus sinnvoll sein, doppelte Definitionen zu benutzen. Zum Beispiel, wenn man ein Programm so schreiben möchte, daß es für verschiedene Betriebssysteme compiliert werden kann. In diesem Fall definiert man einfach diejenigen Prozeduren, die für die beiden Systeme unterschiedlich sein müssen, doppelt und steuert dann über Schalter, welche Prozeduren vom Compiler übersetzt werden sollen. Siehe auch COMPILER ON|OFF, COMPILER "DEF_CONST" und COMPILER "CIE".

 

6-1 Fehlermeldungen des Omikron Basics Inhalt | 6-3 Fehlermeldungen des MacOS

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software