Lade...
 

CX_SYSTEM_OBJECT::ParseLib2

CX_SYSTEM_OBJECT::ParseLib2

Deprecated: Diese Methode verarbeitet die in den angegebenen Dateien angegebenen Meta-Informationen sehr schnell. Dies wird für den Aufbau des AppsWh-Dictionarys genutzt. Sollen jedoch Module aus dem AppsWh geparst werden, müssen diese mitsamt ihrer Abhängigkeiten per Extern bekannt sein, können dann über SystemObject::GetModules bzw. den Befehl Module geholt und per LoadExternalModule geparst werden.

Beschreibung:

Diese Funktion liest InstantView®-Module ein. Die Dateimaske bestimmt, welche Dateien in den Pfaden geparsed werden sollen (z.B. "*.mod"), der zweite Parameter nimmt einen oder mehrere Pfade auf (durch Semikolen getrennt),

ParseLib2 versucht die Modulhierarchie so gut wie möglich nach dem Parse-Lauf aus den Angaben in den Moduldefinitionen zu rekonstruieren. Dies führt zum einen dazu, dass die Hierarchie falsch sein kann, wenn sie in der Extern-Datei anders angegeben wurde und zum anderen kann es vorkommen, dass ein Basismodul über den angegebenen Pfad gar nicht gefunden werden kann. Diese Art von Fehlern wird für alle Module aufgesammelt und in einer gesammelten Meldung herausgegeben. Die Module, deren Basismodule nicht aufgelöst werden konnten, sind dennoch im AppsWH-Dictionary existent, das inherited-Feld wird für diese Module jedoch auf NULL gesetzt und damit kennt das Modul sein Basismodul nicht mehr.

Da ParseLib2 die Hierarchie nach jedem Lauf rekonstruiert, spielt die Reihenfolge der ParseLib2-Aufrufe bei mehreren Dateiendungen eine wichtige Rolle, denn die Basismodule sollten zuerst geparsed werden, um die Hierarchie korrekt zu rekonstruieren. 

 

Code-Beispiel:
Var(path)
"CX_PATH" SystemObject Call(GetEnvironment) -> path
path "*.mod" SystemObject Call(ParseLib2)
path "*.app" SystemObject Call(ParseLib2)
SystemObject Call(GetAWHDictionary) -> dictionary

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top STRING Dateimaske
  Top-1 STRING Pfad(e)
Stack(Out) Top STRING Fehlermeldungen
Funktionsaufruf: Call(ParseLib2)