Übersicht der REXX-Anweisungen (unvollständig)

REXX-Anweisungen
address umgebung ausdruckzum Ausführen von Anweisungen außerhalb der REXX-Umgebungaddress CMD 'DIR *.*'
arg ArgumentstringAuswertung per Kommandozeile übergebener Argumente; Abkürzung für parse upper arg Argumentstringarg n k
arg Argument1 [, Argument2][…]Auswertung an eine Funktion oder Prozedur übergebener Argumente; Abkürzung für parse upper arg Argument1[, Argument2][…]arg n, k
call prozedurAufruf einer prozedurcall binkoeff n, k
call on bzw. off Bedingungschaltet die Überwachung der Bedingung ein oder aus (mit Rückkehr)call on error
call load 'bibliothek' Eine externe Bibliothek ladencall load 'mathe.r'
doAlle möglichen Arten von Schleifen
drop variablevariable löschendrop a
exitveranlasst das Programm sich zu beenden
if log. Ausdruck then anweisungSelektionsbefehlif a > 0 then a = a + 1; else a = -a
interpret ausdruckausdruck wird wie eine REXX-Anweisung behandeltinterpret "a=5*(4+b)"
iterateSprung zum nächsten Schleifendurchlauf, entsprechend dem continue anderer Sprachen
leaveVerlassen einer Schleife, entsprechend dem break anderer Sprachen
nopLeeranweisung, die nichts macht
numeric digits / form / fuzz [Wert]Festlegungen für arithmetische Operationennumeric digits 20
options ausdrucknimmt spezielle Einstellungen vor
parseAnalyse von Eingaben und Variablen (Vorlaufinformation)
procedurenur direkt nach einer mit call angesteuerten Marke zulässig (Funktions- oder Prozeduraufruf); erzeugt einen Namespace für lokale Variablen
pull variableliest eine Zeichenkette von der aktuellen Standardqueue oder (wenn diese leer ist) der Tastatur ein (Abkürzung für parse upper pull)pull eingabe
push ausdruckausdruck wird der aktuellen Standardqueue übergeben, die in diesem Fall als Stack funktioniert (LIFO)
queue ausdruckausdruck wird der aktuellen Standardqueue übergeben (FIFO)
return ausdruckkehrt zur aufrufenden Stelle zurück und übergibt ggf. den optional angegeben Wert
say ausdruckausdruck wird auf dem Bildschirm ausgegebensay "Hallo Welt!"
select; when Bedingung then Anweisung; […] [otherwise Anweisungen;] endMehrfachverzweigung
signal labelÄquivalent zu goto label
signal on bzw. off BedingungSchaltet die Überwachung der Bedingung ein bzw. aus (ohne Rückkehr)signal on break
trace Abkürzungsteuert die Debugging-Ausgabentrace ?i, trace off

Übersicht der REXX-Funktionen (unvollständig)

REXX-Funktionen
address()gibt die Umgebung zurückz. B.: address() == 'DOS'
arg(n)gibt das n-te Argument zurück (im Falle der Kommandozeile ist n == 1)console = arg(1)
arg()gibt die Anzahl der übergebenen Argumente zurückconsole = arg(1)
charin("dateiname")holt ein Zeichen aus dem Eingabestromzeichen = charin("semmel.txt")
charout()schreibt ein Zeichen in den Ausgabestrom
chars()gibt die Anzahl der noch verfügbaren Zeichen im Eingabestrom aus
date()gibt je nach Option Tages- bzw. Datumsangaben zurück.
linein("dateiname")Liest eine ganze Zeile aus einer Datei einzeile = linein("semmel.txt")
lineout("dateiname",ausdruck)ausdruck wird in Datei geschriebenlineout("semmel.txt",eumel)
lines()gibt die Anzahl der noch vollständigen Zeilen im Eingabestrom aus
queued()gibt die Anzahl ungelesenen Einträge in der aktuellen Standardqueue aus
rxqueue("Kommando"[, "Name"])Erzeugt oder setzt eine benannte Queue bzw. fragt ihren Namen ab
Stringfunktionen
length(string)liefert die Länge eines Strings zurückx = length("abc") => x = 3
substr(string,position,zeichenzahl)Ein Teilstring aus stringx = substr("abcde",2,3) => x = bcd
word(string,wert)gibt das n.te Wort des String ausa = word("polyglotte Katze",2) => Katze
words(string)gibt die Anzahl der Wörter des Strings ausa = words("Hallo Leute") => 2
mathematische Funktionen
abs(zahl)liefert den vorzeichenlosen Teil einer Zahl zurückabs(-3) => 3
bitand()Bitweises UND
bitor()Bitweises ODER
bitxor()Bitweises XOR (exklusives Oder)
random(u,o,s)liefert eine zufällige Zahl in den Grenzen von u und o zurück. u,o und s sind optional
C2D()Wandelt Zeichen in ASCII-Code (dezimal) um
C2X()Wandelt Zeichen in ASCII-Code (hexadezimal) um
D2C()Wandelt Dezimalzahlen in Zeichen um
D2X()Wandelt Dezimalzahlen in Hexadezimalzahlen um

Übersicht der REXX-Operatoren (unvollständig)

Vergleichsoperatoren

Rexx verfügt über zwei Klassen von Vergleichsoperatoren, die exakt (z. B. ==) oder numerisch (=) vergleichen. Im zweiten Fall werden zunächst etwaige Rand-Blanks entfernt, weil diese für die Interpretation als Zahl nicht von Bedeutung sind.

Rexx unterstützt eine große Zahl von Varianten, wobei allerdings „nicht“ nicht, wie in manchen Sprachen üblich, durch das Ausrufungszeichen, sondern durch das mathematische Zeichen für „nicht“ (¬), ersatzweise den Backslash ausgedrückt wird (das Ausrufungszeichen gehört zum Zeichenvorrat für Bezeichner!)

Vergleichs-Operatoren Beispiel Ergebnis
exakt gleich=="1 " == 10
numerisch gleich="1 " = 11
nicht exakt gleich    ¬== \=="1 " \== 11
numerisch ungleich<>  ¬=  \= "1 " \= 10
exakt größer>> 30 >> "4 "0
numerisch größer> 30 > "4 "1
exakt größer oder gleich>== ¬<< \<< 30 >== "4 "0
numerisch größer oder gleich>=  ¬<  \< 30 >= "4 "1
exakt kleiner<< 30 << "4 "1
numerisch kleiner< 30 < "4 "0
exakt kleiner oder gleich<== ¬>> \>> 30 <<= "4 "1
numerisch kleiner oder gleich<=  ¬>  \> 30 <= "4 "0


sonstige Operatoren

Die Operatoren +, -, * und / werden nicht extra aufgeführt.

REXX-Operatoren
**Potenz4**3 == 64
%ganzzahlige Division11%3 == 3
//Rest-Operator (Modulo)11//3 == 2
&logisches UNDa & b => wahr, wenn a und b wahr sind
|logisches ODERa | b => wahr wenn a oder b wahr ist
&&logisches XORa && b => wahr, wenn entweder a oder b wahr ist, aber nicht beide gleichzeitig
||Stringverkettung (Konkatenation)"bär"||"tiger" = "bärtiger"
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.