Zurück Weiter Kapitel

Suchreihenfolge

Funktionseinbindungen in ARexx werden zum Zeitpunkt des Funktionsaufrufs hergestellt. Eine bestimmte Suchreihenfolge wird eingehalten, bis eine Funktion gefunden wird, die mit dem Namenssymbol oder der Zeichenfolge übereinstimmt. Ist die angegebene Funktion nicht auffindbar, hat dies einen Fehler zur Folge, und die Auswertung des Ausdrucks wird beendet. Die vollständige Suchreihenfolge sieht wie folgt aus:

Interne Funktionen

Der Quelltext des Programms wird auf eine Sprungmarke hin untersucht, die dem Funktionsnamen entspricht. Wird eine Entsprechung gefunden, so wird eine neue Speicherumgebung erstellt, und die Steuerung geht auf diese Sprungmarke über.

Integrierte Funktionen

Die Bibliothek mit den integrierten Funktionen wird nach dem angegebenen Namen durchsucht. Alle diese Funktionen werden durch Namen in Großbuchstaben definiert.

Funktionsbibliotheken und Funktions-Hosts

Die verfügbaren Funktionsbibliotheken und Funktions-Hosts werden in der Bibliotheksliste verwaltet, die in der Reihenfolge der Prioritätswerte durchsucht wird, bis die Funktion gefunden oder das Ende der Liste erreicht ist. Funktions-Hosts werden über ein Nachrichtenübertragungsprotokoll aufgerufen, das dem für Kommandos verwendeten Protokoll vergleichbar ist. Sie können als Gateways für ferne Prozeduraufrufe an andere Maschinen innerhalb eines Netzes verwendet werden.

Externe ARexx-Programme

Der letzte Schritt in der Reihenfolge ist die Suche nach einer externen ARexx-Programmdatei. Zu diesem Zweck wird eine Nachricht an den residenten ARexx-Prozeß gesendet. Die Suche beginnt stets im aktuellen Verzeichnis und folgt dann dem gleichen Suchpfad wie der ursprüngliche Aufruf des ARexx-Programms. Beim Namensabgleich spielt Groß- und Kleinschreibung keine Rolle.

Bitte beachten Sie, daß die Prozedur des Funktionsnamenabgleichs bei einigen Suchschritten zwischen Groß- und Kleinschreibung unterscheidet, bei anderen nicht. Ob dies bei der Abgleichsprozedur in einer Funktionsbibliothek oder einem Funktions-Host der Fall ist, liegt im Ermessen des Programmierers. Funktionen, in deren Namen Groß- und Kleinschreibung vorkommen, müssen über ein Zeichenfolge-Token aufgerufen werden, da Symbolnamen stets in Großbuchstaben umgewandelt werden.

Die vollständige Suchreihenfolge wird immer dann eingehalten, wenn der Funktionsname durch ein Symbol-Token definiert ist. Die Suche nach internen Funktionen wird dagegen umgangen, wenn der Name in einem Zeichenfolge-Token steht. Dies gibt internen Funktionen die Möglichkeit, die Namen externer Funktionen zu besetzen, wie das folgende Beispiel zeigt:

CENTER: /*internes "CENTER"*/
ARG Zeichenfolge, Lang /*Argumente holen*/
Lang = MIN(Lang,60) /*Längenwert ggf. ändern*/
return `CENTER' (Zeichenfolge, Lang)

Hier wurde die integrierte Funktion CENTER() nach Änderung des Längenarguments durch eine interne Funktion ersetzt.

Hoch Zurück Weiter Kapitel