summaryrefslogtreecommitdiff
path: root/doc/basic/basic handbuch.3
diff options
context:
space:
mode:
Diffstat (limited to 'doc/basic/basic handbuch.3')
-rw-r--r--doc/basic/basic handbuch.3698
1 files changed, 0 insertions, 698 deletions
diff --git a/doc/basic/basic handbuch.3 b/doc/basic/basic handbuch.3
deleted file mode 100644
index 14cb499..0000000
--- a/doc/basic/basic handbuch.3
+++ /dev/null
@@ -1,698 +0,0 @@
-#page nr ("%",97)#
-#head#
-EUMEL-BASIC-Compiler 9. Anpassung von Programmen an den EUMEL-BASIC-Compiler %
-
-#end#
-
-9. Anpassung von Programmen an den EUMEL-BASIC-Compiler
-
-
-9.1. Unterschiede zwischen BASIC-Inter­
- pretern und dem EUMEL-BASIC-
- Compiler
-
-Bei der Anpassung von Programmen für BASIC-Interpreter an den EUMEL-
-BASIC-Compiler gibt es einige Besonderheiten zu beachten, die auf den unterschied­
-lichen Arbeitsweisen von Compilern gegenüber Interpretern beruhen.
-Bei Interpretern fällt die Übersetzung und Ausführung des Quellprogramms zeitlich
-zusammen (genau genommen gibt es ja gar keine Übersetzung, sondern das Quell­
-programm wird #on("i")#interpretiert#off("i")#). Dies hat zur Folge, daß auch nicht zur Ausführung
-bestimmte Anweisungen (z.B. Dimensionierungen, Typfestlegungen etc.) erst während
-der Ausführung des Programms erkannt und ausgewertet werden.
-Bei Compilern hingegen muß deutlich zwischen der Übersetzungszeit (Compiletime)
-und der Laufzeit (Runtime) eines Programms unterschieden werden.
-Der wesentliche Unterschied zwischen Compilern und Interpretern liegt nun in der
-Reihenfolge der Kenntnisnahme von den Anweisungen. Während der Interpreter von
-den Anweisungen in der Reihenfolge ihres Auftretens entlang des Programmablaufs
-Kenntnis nimmt, werden die Anweisungen vom Compiler in der Reihenfolge ihres
-textuellen Auftretens zur Kenntnis genommen.
-Da es sich bei dem EUMEL-BASIC-Compiler um einen One-Pass-Compiler
-handelt, ist es zwingend notwendig, daß
-- DIM-Anweisungen vor dem ersten Zugriff auf das zu dimensionierende Feld
- stehen.
-- OPTION BASE-Anweisungen vor den betreffenden Dimensionierungen stehen.
-- DEF FN-Anweisungen vor dem ersten Aufruf der zu definierenden Funktion ste­
- hen.
-- DEFINT- beziehungsweise DEFSTR-Anweisungen vor der ersten Verwendung der
- betreffenden Variablen erscheinen.
-
-Einige Interpreter lassen sogar den Abschluß von FOR-NEXT- und WHILE-
-WEND-Schleifen an mehreren Stellen im Programm zu (z.B. mehrere NEXT-
-Anweisungen zu einer FOR-Anweisung). Auch solche "Kunstgriffe" gestattet der
-EUMEL-BASIC-Compiler (aus den oben geschilderten Gründen) nicht.
-
-
-
-
-9.2. Abweichungen von ISO 6373-1984
- (Minimal-BASIC)
-
-
-
-Der EUMEL-BASIC-Compiler weicht in folgenden Punkten von der ISO-Norm
-6373-1984 für Minimal-BASIC ab:
-- Treten bei der Auswertung von numerischen Ausdrücken Überläufe auf, so wird
- nicht, wie im Standard vorgesehen, eine Warnung ausgegeben und mit bestimmten
- Höchstwerten weitergerechnet, sondern die Ausführung des BASIC-Programms
- wird mit einer entsprechenden Fehlermeldung abgebrochen.
-- Nimmt die Sprungziel-Nummer bei der ON-Anweisung einen fehlerhaften Wert an
- (Nummer < 1 oder Nummer > Anzahl Sprungziele), dann wird nicht, wie im
- Standard empfohlen, mit einer Fehlermeldung abgebrochen, sondern es wird (wie
- auch in Microsoft-BASIC üblich) das Programm mit der der ON-Anweisung fol­
- genden Anweisung fortgesetzt.
-- Bei der DATA-Anweisung müssen nicht unbedingt Zeichenfolgen angegeben
- werden. Werden sie weggelassen, dann wird bei Ausführung der READ-
- Anweisung null beziehungsweise Leertext geliefert (vergleiche Kapitel 8, DATA-
- Anweisung).
-- Bei den Eingaben für eine INPUT-Anweisung können ebenfalls die Daten wegge­
- lassen werden. Auch hier wird null beziehungsweise Leertext geliefert (vergleiche
- Kapitel 8, INPUT-Anweisung)
-
-
-Die Erweiterungen gegenüber ISO 6373 sollen hier nicht im einzelnen aufgeführt
-werden. Bitte vergleichen Sie in Zweifelsfällen die Normungsschrift mit dieser Doku­
-mentation!
-
-
-
-
-9.3. Anpassung von Microsoft-BASIC Pro­
- grammen an den EUMEL-BASIC-
- Compiler
-
-
-
-Bei der Entwicklung des EUMEL-BASIC-Compilers wurde zwar auf Übereinstim­
-mung mit Microsoft-BASIC Wert gelegt, von einer echten Kompatibilität kann aber
-aufgrund einer ganzen Reihe fehlender Anweisungen und Funktionen nicht gespro­
-chen werden.
-Gegenüber Microsoft-BASIC fehlen vor allem:
-- alle "Direkt-Kommandos" (RUN, LIST, LOAD, SAVE, MERGE usw.). Die Aufgaben
- dieser Anweisungen werden von den Prozeduren des EUMEL-Systems über­
- nommen.
-- im weiteren Sinne "hardware-nahe" oder an Maschinensprache orientierte Anwei­
- sungen und Funktionen (CALL, PEEK, POKE, USR, WAIT usw.)
-- die ERROR-Handling Anweisungen (ON ERROR, RESUME)
-- die Dateiverarbeitungs-Anweisungen und -Funktion (INPUT\#, PRINT\# u.a.; die
- INPUT- und PRINT-Anweisungen wurden aber auf Zusammenarbeit mit 'sysin'
- und 'sysout' abgestimmt.)
-- die Single-Precision-Variablen (Single- und Double-Precision-Variablen wer­
- den beide auf den Datentyp REAL abgebildet.)
-- die hexadezimalen und oktalen Konstanten
-
-Anweisungen und Funktionen, die sich abweichend vom Microsoft-Standard verhal­
-ten, sind vor allem:
-- CALL, CHAIN, USR
-- ERROR, ERR, ERL
-- LSET, RSET
-
-Wichtige Erweiterungen gegenüber Microsoft-BASIC sind:
-- Möglichkeit des Aufrufs von ELAN-Prozeduren
-- Maximale Anzahl von Zeichen pro Zeile: 32000
-- Maximale Anzahl von Zeichen pro TEXT-Objekt: 32000
-- OPTION BASE wirkt auf einzelne Felder (und nicht unbedingt auf ein ganzes
- Programm)
-
-#on ("b")#
-Hinweis zur Verwendung von MS-BASIC-Programmen im EUMEL-System#off ("b")#
-Sollen Microsoft-BASIC-Programme in das EUMEL-Systemm übernommen wer­
-den, so ist dabei so vorzugehen:
-1. Speichern Sie das Programm von MS-BASIC aus mit der ASCII-SAVE-Option
- ab.
- Beispiel: SAVE "PROGRAMM.BAS",A
-2. Lesen Sie das Programm mittels "DOSDAT" (Programm zum Lesen von MS-
- DOS-Dateien) im "file ascii"-Modus ein:
-
- reserve ("file ascii", /"DOS"); fetch ("PROGRAMM.BAS", /"DOS")
-
-Danach steht ihnen das BASIC-Program in der EUMEL-Textdatei
-"PROGRAMM.BAS" zur Verfügung.
-
-#page#
-#head#
-EUMEL-BASIC-Compiler Anhang A: Reservierte Wörter %
-
-#end#
-
-Anhang A: #ib(4)#Reservierte Wörter#ie(4)#
-Dieser Anhang enthält eine Übersicht über alle vom EUMEL-BASIC-Compiler
-erkannten reservierten Wörter.
-
-ABS Funktion
-AND Operator
-AS Anweisungsbestandteil
-ASC Funktion
-ATN Funktion
-BASE Anweisungsbestandteil
-CALL Anweisung
-CDBL Funktion
-CHAIN Anweisung
-CHR$ Funktion
-CINT Funktion
-CLEAR nicht implementiert
-CLOSE nicht implementiert
-CLS Anweisung
-COMMON nicht implementiert
-FIELD nicht implementiert
-COS Funktion
-CSRLIN Funktion
-CVD Funktion
-CVI Funktion
-DATA Anweisung
-DATE$ Funktion
-DEF Anweisung
-DEFDBL Anweisung
-DEFINT Anweisung
-DEFSNG Anweisung
-DEFSTR Anweisung
-DIM Anweisung
-ELSE Anweisungsbestandteil
-END Anweisung
-EOF Anweisungsbestandteil
-EQV Operator
-ERL Funktion
-ERM$ Funktion
-ERR Funktion
-ERROR Anweisung
-EXP Funktion
-FIX Funktion
-FOR Anweisung
-FRE Funktion
-GET nicht implementiert
-GO Anweisungsbestandteil
-GOSUB Anweisung
-GOTO Anweisung
-HEX$ Funktion
-IF Anweisung
-IMP Operator
-INKEY$ Funktion
-INPUT Anweisung
-INPUT$ Funktion
-INSTR Funktion
-INT Funktion
-KILL Anweisung
-LEFT$ Funktion
-LEN Funktion
-LET Anweisung
-LINE Anweisungsbestandteil
-LOC nicht implementiert
-LOG Funktion
-LPOS Funktion
-LPRINT Anweisung
-LSET Anweisung
-MID$ Anweisung/Funktion
-MKD$ Funktion
-MKI$ Funktion
-MOD Operator
-NAME Anweisung
-NEXT Anweisung
-NOT Operator
-OCT$ Funktion
-ON Anweisung
-OPEN nicht implementiert
-OPTION Anweisung
-OR Operator
-OUT nicht implementiert
-POS Funktion
-PRINT Anweisung
-PUT nicht implementiert
-RANDOMIZE Anweisung
-READ Anweisung
-REM Anweisung
-RESTORE Anweisung
-RESUME nicht implementiert
-RETURN Anweisung
-RIGHT$ Funktion
-RND Funktion
-RSET Anweisung
-SGN Funktion
-SIN Funktion
-SPACE$ Funktion
-SPC Funktion
-SQR Funktion
-STEP Anweisungsbestandteil
-STOP Anweisung
-STR$ Funktion
-STRING$ Funktion
-SUB Anweisungsbestandteil
-SWAP Anweisung
-TAB Anweisungsbestandteil
-TAN Funktion
-THEN Anweisungsbestandteil
-TIME$ Funktion
-TIMER Funktion
-TO Anweisungsbestandteil
-TROFF Anweisung
-TRON Anweisung
-USING Anweisungsbestandteil
-USR Funktion
-VAL Funktion
-WAIT nicht implementiert
-WEND Anweisung
-WHILE Anweisung
-WIDTH Anweisung
-WRITE Anweisung
-XOR Operator
-#page#
-#head#
-EUMEL-BASIC-Compiler Anhang B: Vom Scanner erkannte Symboltypen %
-
-#end#
-
-Anhang B: Vom #ib(3)#Scanner#ie(3)# erkannte #ib(3)#Symbol­
-typen#ie(3)#
-
- Der Scanner (ein Paket des EUMEL-BASIC-Systems) hat die Aufgabe, den Pro­
-grammtext Zeichen für Zeichen durchzugehen und auszulesen ('scannen'). Dabei
-werden die Zeichen immer zu logischen Gruppen, sogenannten #on("i")#Symbolen#off("i")# zusammen­
-gefaßt. Diese Symbole werden dann dem eigentlichen Compilerprogramm geliefert.
-Der Scanner entscheidet nach recht komplizierten Regeln, welche Zeichen aus der
-Quelldatei zu einem Symbol zusammengefaßt werden. Dennoch soll in diesem An­
-hang der Begriff des Symbols etwas näher erklärt werden, da der Anwender (vor allem
-bei den Fehlermeldungen) mit Symboltypen konfrontiert wird.
-
-
-
-Reservierte Wörter
-#on ("b")#
-Anfangszeichen:#off ("b")# Buchstaben
-#on ("b")#
-Folgezeichen:#off ("b")# Buchstaben
-#on ("b")#
-Beispiele:#off ("b")# PRINT, VAL, TAB, SUB, TO
-#on ("b")#
-Vergleiche:#off ("b")# Anhang A
-
-
-
-Operatoren
-+ - * / \ ^ MOD
-NOT AND OR XOR EQV IMP
-< > = <= >= <>
-
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.4.
-
-
-
-numerische Konstanten
-#on ("b")#
-Anfangszeichen:#off ("b")# Ziffern 0 bis 9, Dezimalpunkt '.'
-#on ("b")#
-Folgezeichen:#off ("b")# zusätzlich: 'd', 'D', 'e' oder 'E', am Schluß auch '%', '!' oder '\#'
-#on ("b")#
-Beispiele:#off ("b")# 1.0, 1.256d123, 12!
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.2.
-
-
-
-TEXT-Konstanten
-#on ("b")#
-Anfangszeichen:#off ("b")# Anführungszeichen
-#on ("b")#
-Folgezeichen:#off ("b")# Alle Zeichen, sogar Doppelpunkte, Apostrophe und Steuerzei­
- chen. Anführungszeichen dürfen #on("i")#innerhalb#off("i")# von
- TEXT-Konstanten nicht vorkommen. Eine
- TEXT-Konstante #on("i")#muß#off("i")# aber mit einem Anfüh­
- rungszeichen enden.
-#on ("b")#
-Beispiele:#off ("b")# "tadellos", "!?': alles mögliche"
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.2.
-
-
-
-Variablen
-#on ("b")#
-Anfangszeichen:#off ("b")# Buchstaben
-#on ("b")#
-Folgezeichen:#off ("b")# zusätzlich: Punkt '.', Ziffern 0 bis 9, Zeichen '$', '%', '!' und '\#'
-#on ("b")#
-Beispiele:#off ("b")# zeiger, A$, Zahl!, n%, var\#4.3%
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.3.
-
-
-
-Felder/Feldelemente
-wie Variablen, jedoch gefolgt von '(', den Indexangaben und ')'
-#on ("b")#
-Beispiele:#off ("b")# zeiger (3), A$ (pointer), Zahl! (7), n% (a, b, c + d)
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.3.
-
-
-
-Benutzer-definierte Funktionen
-#on ("b")#
-Anfangszeichen:#off ("b")# FN
-#on ("b")#
-Folgezeichen:#off ("b")# Buchstaben, Punkt '.', Ziffern 0 bis 9,
- Zeichen '$', '%', '!' und '\#'
-#on ("b")#
-Beispiele:#off ("b")# FNfunct, FNgauss%, FNf!4.5.6d\#
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.5.
-
-
-
-EOS (End of Statement, Anweisungsende)
-Doppelpunkt ':'
-
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.1.
-
-
-
-EOL (End of Line, Zeilenende)
-Apostrophzeichen ' oder Ende der Dateizeile
-EOL bedeutet gleichzeitig auch EOS
-
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.1.
-
-
-
-EOF (End of File, Dateiende)
-Ende der Quelldatei
-EOF bedeutet gleichzeitig auch EOL (und somit auch EOS)
-
-#on ("b")#
-Vergleiche:#off ("b")# Kapitel 4.1.
-
-
-
-Trennzeichen
-Alle bisher nicht genannten Zeichen werden vom Scanner als Trennzeichen behan­
-delt. In BASIC benötigte Trennzeichen sind das Komma (','), das Semikolon (';') sowie
-die beiden runden Klammern '(' und ')'.
-Zeichen mit Codes kleiner als 32 (Steuerzeichen) werden vom Scanner überlesen.
-#page#
-#head#
-EUMEL-BASIC-Compiler Anhang C: Übersicht über die Fehlermeldungen %
-
-#end#
-
-Anhang C: Übersicht über die Fehlermeldungen
-
-
-Übersicht über die verwendeten Fehlermeldungen zur
-Übersetzungszeit
-Diese Übersicht enthält alle zur Übersetzungszeit möglichen Fehler, mit Ausnahme
-der internen Fehler.
-Die Erläuterungen geben die üblichen Ursachen für die Fehlermeldung an. Es wird
-empfohlen, sich im Falle eines Fehlers außerdem in Kapitel 8 über die genaue Syntax
-der betreffenden Anweisung beziehungsweise Funktion zu informieren.
-
-
-#on ("b")#AS ohne NAME#off ("b")#
-AS darf nur in NAME-Anweisungen vorkommen.
-
-#on ("b")#Accessrecht VAR erwartet, CONST gefunden#off ("b")#
-Beim Aufruf einer ELAN-Prozedur (CALL, CHAIN oder USR) wurde ein VAR-Para­
-meter verlangt. Angegeben wurde aber ein CONST-Parameter (zum Beispiel ein
-Ausdruck).
-
-#on ("b")#Ausdruck erwartet#off ("b")#
-Es wurde ein numerischer oder TEXT-Ausdruck erwartet. Diese Fehlermeldung
-erscheint zum Beispiel, wenn nach einem Operator kein Ausdruck mehr gefunden
-wird.
-
-#on ("b")#BASE ohne OPTION#off ("b")#
-BASE darf nur in OPTION BASE-Anweisungen vorkommen.
-
-#on ("b")#Bei SWAP nur gleiche Variablentypen erlaubt#off ("b")#
-Mit SWAP können nur Variablen von genau dem gleichen Typ bearbeitet werden.
-
-#on ("b")#Das Feld ist bereits dimensioniert#off ("b")#
-Diese Fehlermeldung erscheint bei DIM-Anweisungen, wenn das Feld vorher schon
-explizit oder automatisch dimensioniert wurde.
-
-#on ("b")#ELSE ohne IF#off ("b")#
-ELSE darf nur in IF-Anweisungen vorkommen. ELSE muß in der gleichen Zeile
-stehen wie die zugehörige IF-Anweisung.
-
-#on ("b")#Falsche Felddimension:
-Dimensioniert in ... Dimensionen, gefundene Anzahl Indizes: ...#off ("b")#
-Beim Zugriff auf ein Feldelement wurden zu viele oder zu wenig Indizes angegeben.
-
-#on ("b")#FOR ohne NEXT#off ("b")#
-Diese Fehlermeldung erscheint, wenn am Programmende für eine FOR-Anweisung
-kein korrespondierendes NEXT gefunden wurde.
-
-#on ("b")#Falsche Reihenfolge der Zeilennummern#off ("b")#
-Die Zeilennummern wurden nicht in aufsteigender Reihenfolge angegeben.
-
-#on ("b")#Falscher Typ#off ("b")#
-Es wurde ein anderer Datentyp erwartet als angegeben, und es konnte keine automa­
-tische Konvertierung vorgenommen werden.
-
-#on ("b")#Falscher Typ der Operanden#off ("b")#
-Bei einem dyadischen Operator wurden Operanden angegeben, für deren Typen
-dieser Operator nicht definiert ist (vergleiche Kapitel 4.4.).
-
-#on ("b")#Falscher Typ des Operanden#off ("b")#
-Bei einem monadischen Operator wurde ein Operand angegeben, für dessen Typ
-dieser Operator nicht definiert ist (vergleiche Kapitel 4.4.).
-
-#on ("b")#Fehlerhafte Bereichsangabe#off ("b")#
-Diese Fehlermeldung kann bei den Anweisungen DEFDBL, DEFINT, DEFSNG und
-DEFSTR auftreten, wenn bei einer Bereichsangabe der Buchstabe vor dem Binde­
-strich im Alphabet nach dem Buchstaben hinter dem Bindestrich steht.
-
-#on ("b")#Fehlerhafte Dimensionierung: Die Obergrenze muß >= 1 sein#off ("b")#
-Es wurde versucht, ein Feld mit dem größten Index null in einer Dimension zu
-dimensionieren, obwohl die Index-Untergrenze mit OPTION BASE auf eins einge­
-stellt war.
-
-#on ("b")#Fehlerhafte Laufvariable#off ("b")#
-Nach einer NEXT-Anweisung wurde eine Laufvariable gefunden, die nicht zur letzten
-anhängigen FOR-Anweisung gehört. Der Fehler tritt auf, wenn Schleifen geschachtelt
-wurden.
-
-#on ("b")#Fehlerhafte Zeilennummer#off ("b")#
-Die Zeilennumer entspricht nicht der Syntax für Zeilennumern.
-
-#on ("b")#Fehlerhafter Funktionsaufruf#off ("b")#
-- Die Prozedur liefert keinen Wert
- Es wurde versucht, eine Prozedur mit USR aufzurufen, die keinen Wert liefert.
-- Der Typ des Resultats ist nicht erlaubt, gefunden: ...
- Es wurde versucht, eine Prozedur mit USR aufzurufen, die ein Objekt liefert,
- dessen Datentyp in BASIC nicht bekannt ist.
-- Kein Argument erwartet
- Es wurde versucht, eine benutzer-definierte Funktion, die ohne Parameter definiert
- wurde, mit Argument(en) aufzurufen.
-- ... Argument(e) erwartet
- Die Anzahl der angegebenen Argumente ist kleiner als die Anzahl der bei der
- Funktionsdefinition angegebenen Parameter.
-- Nur ... Argument(e) erwartet
- Die Anzahl der angegebenen Argumente ist größer als die Anzahl der bei der Funk­
- tionsdefinition angegebenen Parameter.
-- Kein Resultat erlaubt (gefunden: ...)
- Bei CALL oder CHAIN wurde versucht, eine wertliefernde Prozedur aufzurufen.
-
-#on ("b")#Funktionsaufruf ohne Zusammenhang#off ("b")#
-Es wurde ein Funktionsaufruf angegeben, wo eine Anweisung erwartet wurde.
-
-#on ("b")#GO ohne TO oder SUB#off ("b")#
-Das reservierte Wort GO kann nur in GO SUB oder GO TO auftreten.
-
-#on ("b")#Interner Fehler#off ("b")#
-Bei der Übersetzung wurde innerhalb des Compilerprogramms ein interner Fehler
-ausgelöst. (vergleiche Kapitel 7.1.)
-
-#on ("b")#Nach OPTION BASE ist nur 0 oder 1 erlaubt#off ("b")#
-Es wurde versucht, eine Zahl > 1 nach OPTION BASE anzugeben.
-
-#on ("b")#NEXT ohne FOR#off ("b")#
-Es wurde eine NEXT-Anweisung gefunden, die keiner FOR-Anweisung zuzuordnen
-ist, da keine "offenen" FOR-Schleifen mehr anhängig sind.
-
-#on ("b")#Nicht implementiert#off ("b")#
-Einige reservierte Wörter werden vom BASIC-Compiler erkannt, obwohl die zugehö­
-rigen Anweisungen oder Funktionen nicht implementiert sind (vgl. Anhang A).
-
-#on ("b")#Parametervariable kommt mehrmals vor#off ("b")#
-Bei der Definition einer "user function" kommt ein Parameter in der Parameterliste
-mehr als einmal vor.
-
-#on ("b")#Rekursive Funktionsdefinition#off ("b")#
-Es wurde versucht, in der Definition einer "user function" die zu definierende Funk­
-tion aufzurufen.
-
-#on ("b")#STEP ohne FOR#off ("b")#
-STEP darf nur in FOR-Anweisungen vorkommen.
-
-#on ("b")#SUB ohne GO#off ("b")#
-SUB darf nur in GOSUB vorkommen.
-
-#on ("b")#Syntaxfehler: <nähere Fehlerangabe>#off ("b")#
-Wenn dieser Fehler erscheint, wurde vom Compiler eine Angabe gefunden, die nach
-den Syntaxregeln dort nicht erwartet wurde oder fehlerhaft ist.
-
-#on ("b")#TAB ohne (L)PRINT#off ("b")#
-TAB darf nur in PRINT- und LPRINT-Anweisungen vorkommen.
-
-#on ("b")#THEN ohne IF#off ("b")#
-THEN darf nur in IF-Anweisungen vorkommen. THEN muß in der gleichen Zeile
-stehen wie die zugehörige IF-Anweisung.
-
-#on ("b")#TO ohne Zusammenhang#off ("b")#
-TO darf nur in FOR-Anweisungen oder in GO TO vorkommen.
-
-#on ("b")#Text zu lang#off ("b")#
-Dieser Fehler erscheint, wenn ein Anführungszeichen fehlt beziehungsweise ein
-Anführungszeichen zu viel gefunden wird.
-
-#on ("b")#Unbekannte Funktion, Argument(e) angegeben: ...#off ("b")#
-Es wurde versucht, eine Funktion mit einem Argument aufzurufen, für dessen Typ die
-Funktion nicht definiert ist.
-
-#on ("b")#Unbekannte Prozedur, Parameter angegeben: ...#off ("b")#
-Die angegebene Prozedur konnte mit den angegebenen Parametertypen nicht gefun­
-den werden.
-
-#on ("b")#Undefinierte 'user function'#off ("b")#
-Es wurde versucht, eine benutzer-definierte Funktion aufzurufen, die (noch) nicht
-definiert wurde.
-
-#on ("b")#USING ohne (L)PRINT#off ("b")#
-USING darf nur in PRINT- und LPRINT-Anweisungen vorkommen.
-
-#on ("b")#WEND ohne WHILE#off ("b")#
-Es wurde eine WEND-Anweisung gefunden, die keiner WHILE-Anweisung zuzuord­
-nen ist, da keine "offenen" WHILE-Schleifen mehr anhängig sind.
-
-#on ("b")#WHILE ohne WEND#off ("b")#
-Diese Fehlermeldung erscheint, wenn am Programmende für eine WHILE-Anweisung
-kein korrespondierendes WEND gefunden wurde.
-
-#on ("b")#Zeile mit dieser Nummer existiert nicht#off ("b")#
-Es wurde versucht, mit GOTO oder GOSUB zu einer Zeilennumer zu verzweigen, die
-im Programm nicht angegeben wurde.
-
-
-
-
-Übersicht über die innerhalb des BASIC-Systems
-ausgelösten Laufzeitfehler
-Die meisten Laufzeitfehler werden auch bei BASIC-Programmen im EUMEL-System
-erzeugt (vergleiche Kapitel 7.2.). Einige werden aber innerhalb des BASIC-Systems
-erzeugt. Die nachfolgende Übersicht enthält die innerhalb des BASIC-Systems aus­
-gelösten Fehler mit Angabe des gelieferten Fehlercodes und der Fehlermeldung.
-
-#on ("b")#Fehlercode:#off ("b")# 1003
-#on ("b")#Fehlermeldung:#off ("b")# RETURN ohne GOSUB
-Eine RETURN-Anweisung wurde gefunden, obwohl keine GOSUB-Anweisung mehr
-anhängig war.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1004
-#on ("b")#Fehlermeldung:#off ("b")# RESTORE: Keine DATA-Anweisung in oder nach
-#right#Zeile ... gefunden
-Eine RESTORE-Anweisung konnte nicht ausgeführt werden, weil in oder nach der in
-der Anweisung angegebenen Zeilennummer keine DATA-Anweisung mehr steht.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1005
-#on ("b")#Fehlermeldung:#off ("b")# bei ^: negative Basis, gebrochener Exponent: ...
-Es wurde versucht, eine negative Zahl mit einer gebrochenen Zahl zu potenzieren.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1005
-#on ("b")#Fehlermeldung:#off ("b")# USING: kein Format gefunden
-Bei einer PRINT USING-Anweisung wurde kein Format für die Ausgabe angegeben
-oder die Formatzeichenkette enthält keine Formatzeichen.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1005
-#on ("b")#Fehlermeldung:#off ("b")# USING-Format fehlerhaft: ...
-Bei einer PRINT USING-Anweisung wurde ein fehlerhaftes Format angegeben.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1004
-#on ("b")#Fehlermeldung:#off ("b")# Keine Daten mehr für READ
-Es stehen keine Daten mehr für die READ-Anweisung zur Verfügung; der READ-
-DATA-Zeiger zeigt hinter das Ende der letzten DATA-Anweisung.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1005
-#on ("b")#Fehlermeldung:#off ("b")# WIDTH: negative Angabe: ...
-Nach WIDTH wurde eine negative Zahl gefunden.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1013
-#on ("b")#Fehlermeldung:#off ("b")# READ: Falscher Datentyp, ... ist kein INT
-Einer INT-Variablen konnte kein Wert zugewiesen werden, da das aktuelle Objekt
-aus der DATA-Liste keine gültige Darstellung eines INT-Wertes war oder ein
-"quoted string" gefunden wurde.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1013
-#on ("b")#Fehlermeldung:#off ("b")# READ: Falscher Datentyp, ... ist kein REAL
-Einer REAL-Variablen konnte kein Wert zugewiesen werden, da das aktuelle Objekt
-aus der DATA-Liste keine gültige Darstellung eines REAL-Wertes war oder ein
-"quoted string" gefunden wurde.
-
-
-#on ("b")#Fehlercode:#off ("b")# 1051 (interner Fehler)
-#on ("b")#Fehlermeldung:#off ("b")# variierend
-Bei der Ausführung des Programms trat in einer Prozedur des BASIC-Systems ein
-interner Fehler auf. (Vergleiche Kapitel 7.)
-
-
-#on ("b")#Fehlercode:#off ("b")# 1080
-#on ("b")#Fehlermeldung:#off ("b")# INPUT-Fehler ( Fehlerart ) : > Eingabezeile <
-Bei einer INPUT-Anweisung, die auf eine mit 'sysin' eingestellte Datei wirken sollte,
-kam es zu einem Fehler der angegebenen Fehlerart. Nach dem Doppelpunkt wird die
-Eingabezeile aus der Eingabedatei ausgegeben.
-#page#
-#head#
-EUMEL-BASIC-Compiler Anhang D: ELAN-Prozeduren des Compilers %
-
-#end#
-
-Anhang D: ELAN-Prozeduren des Compilers
-
- #on ("b")#PROC #ib(3)#basic#ie(3)# (TEXT CONST dateiname)#off ("b")#
- Das in der Datei 'dateiname' enthaltene BASIC-Programm wird dem BASIC-
- Compiler zur Übersetzung übergeben. Werden keine Fehler gefunden, so wird das
- Programm direkt nach der Übersetzung ausgeführt.
- Beispiel:
-
- basic ("Mein liebstes BASIC-Programm")#off ("b")#
-
-
- #on ("b")#PROC basic (TEXT CONST dateiname, prozedurname)#off ("b")#
- Das in der Datei 'dateiname' enthaltene BASIC-Programm wird dem BASIC-
- Compiler zur Übersetzung übergeben. Werden keine Fehler gefunden, dann wird
- das Programm unter dem Namen 'prozedurname' dauerhaft eingetragen (inser­
- tiert).
- Das Programm wird nicht ausgeführt. Beachten Sie, daß der Prozedurname den
- Vorschriften für ELAN-Prozedurnamen entsprechen muß und außerdem #on ("b")#keine
- Leerzeichen#off ("b")# enthalten darf. (Zur Namenswahl siehe auch Kapitel 3.)
- Beispiel:
-
- basic ("Mein liebstes BASIC-Programm", "liebstesprogramm")#off ("b")#
-
-
-
- #on ("b")#PROC #ib(3)#basic list#ie(3)# (BOOL CONST status)#off ("b")#
- Mit der Prozedur 'basic list' kann eingestellt werden, ob die gerade vom Compiler
- übersetzten Programmzeilen angezeigt werden sollen oder nicht (vergleiche Kapitel
- 3.).
-
- basic list (TRUE)#off ("b")#: Die übersetzten Zeile werden angezeigt
- basic list (FALSE)#off ("b")#: Die übersetzten Zeile werden nicht angezeigt
-
-
- #on ("b")#PROC #ib(3)#basic page#ie(3)# (BOOL CONST status)#off ("b")#
- Mit der Prozedur 'basic page' kann eingestellt werden, wie die Ausgaben von
- BASIC-Programmen behandelt werden, wenn der Bildschirm voll ist (vergleiche
- Kapitel 5, Steuerung der Bildschirmausgaben).
-
- basic page (TRUE): Beim Erreichen des Bildschirmendes wird auf einen
- Tastendruck gewartet (vgl. Kap. 5.)
- basic page (FALSE): Beim Erreichen des Bildschirmendes wird 'gescrollt'.
-