next up previous
Nächste Seite: Rückgabewerte Aufwärts: Der Symbol-Dekoder (m2decsym) Vorherige Seite: Der Symbol-Dekoder (m2decsym)

Aufruf und Bedienung

m2decsym {? SymbolFile}

Die Rückübersetzung von Symboldateien beschert allerdings auch einige unvermeidliche Unzulänglichkeiten, die jedoch hauptsächlich den verwendeten Stil betreffen.

Importe sind immer qualifiziert. Die Import-Anweisungen behandeln nur den Modulnamen, nicht die einzelnen Bezeichner. Diese Form ist in jedem Fall die allgemeinere, da sie beliebige Bezeichner -- insbesondere gleiche zweier Moduln -- zulässt.

Zeilenumbrüche werden grosszügig gesetzt. Dies vermeidet überlange Zeilen. Diese können vor allem in Zeiger- und Feld-Deklarationen auftreten, in denen keine Typnamen verwendet werden.


\begin{example}
Abschreckendes Beispiel:
\begin{verbatim}VAR compilerHorror: ...
...ARRAY [0..15] OF
POINTER TO RECORD h,l: INTEGER END;\end{verbatim}\end{example}

Natürlich ist die ursprüngliche Form einer Konstanten-Deklaration nicht mehr sichtbar. So sind Konstanten der Form

CONST const = const1 + const2;
nur noch als normaler Wert sichtbar. Ebenfalls ist keine Information darüber enthalten, ob die Konstante in Dezimaler, Hexadezimaler oder Octaler Schreibweise deklariert wurde.

Sind keine Parameter-Namen in der Symboldatei vorhanden -- mittels Compileranweisung ,,$NameChk:=FALSE`` -- sind die formalen Parameter mit par0, par1 und so fort angegeben.

Einige gravierende Einschränkungen bestehen leider doch:

Eine fehlerlose Dekodierung erlaubt, die erzeugte Definition wieder zu übersetzen. Das macht im allgemeinen natürlich keinen Sinn, beweist aber deren Korrektheit.


next up previous
Nächste Seite: Rückgabewerte Aufwärts: Der Symbol-Dekoder (m2decsym) Vorherige Seite: Der Symbol-Dekoder (m2decsym)
Claudio Nieder 2000-11-12