REXX
REXX (Abk. f. Restructured Extended Executor) ist eine von Michael Cowlishaw bei IBM entwickelte Skriptsprache.
Sie stammt aus dem Großrechnerbereich (TSO), wurde aber auch in anderen Produktlinien wie OS/2 verwendet. Eine angepasste Version erfreute sich auch auf dem Amiga großer Beliebheit. Mittlerweile sind auch Interpreter für fast alle Umgebungen bis hin zum PalmOS erhältlich. 1996 wurde REXX zum ANSI-Standard (ANSI X3.274-1996 "Information Technology - Programming Language REXX").
REXX ist sehr flexibel. REXX kennt keine expliziten Variablendeklarationen, und auch keine Arrays. Dennoch läßt sich eine Array ähnliche Struktur leicht dadurch erzeugen, indem Variablen indiziert werden:
DO i = 1 to 10zahl.i = 10 - iEND
Danach existieren folgende Variablen mit folgender Zuordnung: zahl.1 = 9, zahl.2 = 8, zahl.3 = 7, ...
So kann auch eine Variable, die vorher ohne Zuweisung als Wort verwendet wurde, nach der Zuweisung mit diesem Wert benutzt werden:
say hallo => "hallo" hallo = 25 say hallo => 25 hallo = "say 5 + 3" say hallo => "say 5 + 3" interpret hallo => 8 drop hallo say hallo => "hallo"
Table of contents |
2 Fehler- und Ausnahmebehandlung in Rexx 3 Literatur 4 Weblinks |
error | |
failure | |
halt | Programmabbruch |
novalue | |
syntax |
Wenn ein Abbruch durch Fehler oder Benutzer mittels signal on Bedingung umgeleitet wurde, kann mittels der Systemvariablen RC und SIGL der Fehler analysiert werden. RC beinhaltet de Fehlercode von Rexx und SIGL die Zeile, in der dieser Fehler Aufgetreten ist.
TRACE
TRACE bestimmt die Ablaufverfolgung des Programms. TRACE kennt die folgensen Schalter: A, C, E, F, I, L, N, O, R und S.
Fehlercodes
RC - Code: | Bedeutung: | RC - Code: | Bedeutung: |
4 | Programmunterbrechung | 26 | Ungültige ganze Zahl |
5 | Recourcen erschöpft | 27 | Ungültige DO Syntax |
6 | Unpaarige Zeichen "/*" | 28 | Ungültiges LEAVE oder ITERATE |
7 | WHEN oder OTHERWISE erwartet | 29 | Umgebungsname zu lang |
8 | Unerwartetes THEN oder ELSE | 30 | Name oder Kette zu lang |
9 | Unerwartetes WHEN oder OTHERWISE | 31 | Name beginnt mit Nummer oder . |
10 | Unerwatetes oder unpassendes END | 33 | Ungültiges Ausdrucksergebnis |
11 | Steuerstapel voll | 34 | Logischer Wert nicht 0 oder 1 |
12 | Klausel zu lang | 35 | Ungültiger Ausdruck |
13 | Ungültige Zeichen im Programm | 36 | Unpaariges ")" |
14 | Unvolständiges DO/SELECT/IF | 37 | Unpaariges "(" oder unerwartetes "," |
15 | Ungültige hexadezimale Konstante | 38 | Ungültige Schablone oder Muster |
16 | Marke nicht gefunden | 39 | Auswertungsstapel-Überlauf |
17 | Unerwartete PROCEDURE | 40 | Inkorrekter Routinenaufruf |
18 | THEN erwartet | 41 | Schlechte Arithmetik-Umformung |
19 | Kette oder Symbol erwartet | 42 | Arithmetischer Überlauf/Unterlauf |
20 | Symbol erwartet | 43 | Routine nicht gefunden |
21 | Ungültige Daten am Ende der Klausel | 44 | Die Funktion gab keine Daten zurück |
22 | Ungültige Zeichenkette | 45 | Bei der Funktion Return sind keine Daten angegeben |
24 | Ungültige TRACE-Anforderung | 48 | Ausfall im Systemservice |
25 | Ungültiges Unter-Schlüsselwort gefunden | 49 | Interpretationsfehler |
Literatur
Weblinks