Next: Standards und Tips Up: Sprachbausteine nur für Previous: Temporäre Namen

## Übergabeparameter für Makros

Die oben genannten Makrofragen können beim Aufruf des Makros gleich mit ihren Belegungen versehen werden. Dazu dient der Parameter PARAMETER im INTERPRETIERE- Kommando.

PARAMETER wird mit einem konstanten Text belegt ( also ein Text zwischen '``' ).

Der innerhalb der Hochkommata stehende String dient als Antwort auf die im Makro stehende Makrofrage. Es können einem Makro beliebig viel Übergabeparameter mitgegeben werden. Stößt der Interpreter auf eine Frage, so liest er, wenn vorhanden, den nächstfolgenden Übergabeparameter ein. Ist ein nichtleerer Parameter vorhanden, so wird nicht die Frage gestellt , sondern die übergebene Textsequenz an die Frageposition gestellt.

z.B.:

Das Makro gerade.his :

           ERZEUGE GERADE PP $ erster Punkt : $;200,100!

kann aufgerufen werden mit

           INTERPRETIERE "gerade.his" ; "100,100" !    oder
           INTERPRETIERE "gerade.his" ; "XYPOS(P1)" !  usw.

Das Makro text.his :

           ERZEUGE TEXT L $  Startpunkt :  $ ;
                          $  Textstring :  $ !

kann aufgerufen werden mit

           INTERPRETIERE "text.his" ; "" ; "'beliebiger text'" !

Im zweiten Beispiel würde das System, da der erste Übergabeparameter leer ist, für den Startpunkt die Frage stellen. Der erzeugte Text hätte danach den Inhalt 'beliebiger text'.

Man beachte, daß bei Übergabe von Textkonstanten, die gemeinhin mit '``' begrenzt werden, Einfachapostrophe ' verwendet werden, da der Übergabeparameter selbst ein Textstring ist, und Doppelhochkommata innerhalb eines Textes syntaktisch unzulässig sind.
Ab Version 1.22 ist es möglich, einen Parameter mehrfach zu benutzen, indem man ihn unter seinem Index referenziert. Index ist die bei 1 beginnende fortlaufende Nummer des Parameters in der Reihe sämtlicher Parameter des Makros.

z.B.:

           ERZEUGE KREIS MR MPK( $  erster Kreis  $ ); NA = Kreis2 !
           ERZEUGE VARIABLE K $  Zielpunkt  $ ; NA = zp !
           SCHIEBE KREIS PP $$1 ; MPK ( $$1 ) ; $$2 !

In dem Beispiel werden zwei Parameter erfragt, und im dritten Kommando mit $$1 und $$2 weiterbenutzt.