14.12.2012 Aufrufe

KFK2666.pdf

KFK2666.pdf

KFK2666.pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5-19 -145-<br />

Erst zur Ausführungszeit des generierten Programms<br />

werden die zwischen EXEC und END EXEC stehenden An­<br />

weisungen aktiv. Soll nur eine Anweisung erzeugt<br />

werden, kann sie auch zwischen "EXEC" und"," stehen:<br />

EXEC PUT LIST('BEISPIEL')SKIP;;<br />

Dabei ist zu beachten, daß sowohl das Semikolon für<br />

die EXEC-Anweisung als auch das für die zu generie­<br />

rende Anweisung stehen muß. Mit Hilfe der Kurzform<br />

der EXEC-Anweisung lassen sich auch Teile von Anwei­<br />

sungen generieren: "EXEC MULT (A, B), " erzeugt den<br />

Teil einer PL/1-Anweisung "MULT(A,B)" (ohne Semikolon).<br />

In einer EXEC-Gruppe kannen beliebige PL/1-Anweisun­<br />

gen stehen. Es ist darauf zu achten, daß das erzeugte<br />

Programm auf jeden Fall syntaktisch richtig wird.<br />

Labels vor Anweisungen sind problematisch, da bei<br />

mehrmaliger Anwendung der gleichen POL-Anweisung<br />

das Label mehrfach deklariert wäre. Man kann entwe-<br />

der jedesmal ein neues Label.mit Hilfe einer Makro­<br />

zeit-Variablen generieren oder die Gruppe von Anwei­<br />

sungen, die das Label enthält, zwischen BEGIN, oder<br />

END; setzen.<br />

Werden durch eine POL-Anweisung mehrere PL/1-Anwei­<br />

sungen erzeugt, so ist es erforderlich, sie als 00­<br />

Gruppe zu generieren.<br />

Beispiel:<br />

Die POL-Anweisung "DRUCKE ALLES;" soll die Anweisungs­<br />

folge "PUT EDIT (HEADLINE) (SKIP,A); CALL PRINT(3);<br />

erzeugen. Wenn der POL-Programmierer nun schreibt:<br />

"IF X> 0 THEN DRUCKE ALLES," und die erzeugten PL/1­<br />

Anweisungen stehen nicht zwischen 00 und END, ergeben<br />

sich Resultate, die der POL-Programmierer nicht er­<br />

wartet (im Beispiel würde also die zweite Anweisung<br />

CALL PRINT(3), nicht in der THEN-Clau8e stehen. Falls<br />

erforderlich, kann auch "BEGIN," und "END," die er­<br />

zeugten Anweisungen umschließen. Dies ist immer dann<br />

natig, wenn DECLARE-Anweisungen generiert werden,<br />

um doppelte Deklarationen zu vermeiden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!