Die Eigenschaft containerContextDependent gibt an, dass Verweise innerhalb einer eigenständigen Funktion (siehe Funktionen) mit Bezug auf den Container (Hauptabschnitt) aufgelöst werden müssen, in dem sich die Funktion nach der Generierung befinden wird. D. h., dass die Deklarationen und Importe des Containers verwendet werden, um Verweise während des Generierungprozesses aufzulösen. Die eigenständige Funktion selbst muss - obwohl sie ein übergeordneter Abschnitt ist - nicht alle Pakete importieren, die zur Auflösung von Verweisen erforderlich sind, sofern dies der endgültige Container auch nicht tut. Beispielsweise können Sie diese Eigenschaft verwenden, wenn die Funktion in mehr als einem Programm genutzt wird, und die Variablennamen werden - abhängig von dem Programm, das die Funktion aufruft - unterschiedlich aufgelöst.
Verwenden Sie die Eigenschaft containerContextDependent nur mit eigenständigen Funktionen. EGL unterstützt eigenständige Funktionen für die Kompatibilität mit Programmen (wie sie z. B. mit VisualAge Generator erstellt werden), bei denen die Sprache keine Bibliotheken unterstützt. Verwenden Sie weder eigenständige Funktionen noch die Eigenschaft containerContextDependent, wenn Sie neuen Code schreiben.
package p;
Program pgm {includeReferencedFunctions = yes}
function main()
standaloneFunc1();
end
function functionInPgm()
end
end
DataItem intInP int end
package p2;
function standaloneFunc1 { containerContextDependent=yes }
// Verweis auf Funktion wird aufgelöst
// wegen containerContextDependent
functionInPgm();
// Verweis auf Abschnitt wird aufgelöst
// wegen containerContextDependent
myVar intInP;
end
function standaloneFunc2
functionInPgm(); // Verweis kann nicht aufgelöst werden
myVar intInP; // Verweis kann nicht aufgelöst werden
end
function standaloneFunc3
// Verweis auf Abschnitt wird aufgelöst, weil
// er durch den Paketnamen qualifiziert wird
myVar p.intInP;
end
| Plattform | Problem |
|---|---|
| JavaScript-Generierung | Die Eigenschaft containerContextDependent wird nicht unterstützt. |