* new deref

This commit is contained in:
peter 1999-05-14 17:52:04 +00:00
parent e871a752bb
commit 032762ce34

View File

@ -129,53 +129,61 @@ begin
end; end;
procedure readdefref; Procedure ReadPosInfo;
var
w : word;
begin begin
w:=ppufile^.getword; Writeln(ppufile^.getword,' (',ppufile^.getlongint,',',ppufile^.getword,')');
if w=$ffff then
begin
w:=ppufile^.getword;
if w=$ffff then
writeln('nil')
else
writeln('Local Definition Nr. ',w);
end
else if w=$fffe then
begin
w:=ppufile^.getword;
writeln('Static Definition Nr. ',w);
end
else if w>$8000 then
writeln('Local symtable ',w,' Definition Nr. ',ppufile^.getword)
else
writeln('Unit ',w,' Definition Nr. ',ppufile^.getword)
end; end;
procedure readsymref; procedure readderef(const s:string);
type
tdereftype = (derefnil,derefaktrecordindex,derefaktstaticindex,derefunit,derefrecord,derefindex);
var var
w : word; b : tdereftype;
begin begin
w:=ppufile^.getword; repeat
if w=$ffff then b:=tdereftype(ppufile^.getbyte);
begin case b of
w:=ppufile^.getword; derefnil :
if w=$ffff then begin
writeln('nil') writeln('nil');
else break;
writeln('Local Symbol Nr. ',w) end;
end derefaktrecordindex :
else if w=$fffe then begin
begin writeln('AktRecord ',s,' ',ppufile^.getword);
w:=ppufile^.getword; break;
writeln('Static Symbol Nr. ',w); end;
end derefaktstaticindex :
else if w>$8000 then begin
writeln('Local symtable ',w,' Symbol Nr. ',ppufile^.getword) writeln('AktStatic ',s,' ',ppufile^.getword);
else break;
writeln('Unit ',w,' Symbol Nr. ',ppufile^.getword) end;
derefunit :
begin
writeln('Unit ',ppufile^.getword);
break;
end;
derefrecord :
begin
write('RecordDef ',ppufile^.getword,', ');
end;
derefindex :
begin
write(s,' ',ppufile^.getword,', ');
end;
end;
until false;
end;
procedure readdefref;
begin
readderef('Definition');
end;
procedure readsymref;
begin
readderef('Symbol');
end; end;
@ -277,6 +285,8 @@ begin
symoptions:=ppufile^.getbyte; symoptions:=ppufile^.getbyte;
if symoptions<>0 then if symoptions<>0 then
begin begin
write(space,' File Pos: ');
readposinfo;
write(space,' Options: '); write(space,' Options: ');
first:=true; first:=true;
for i:=1to symopts do for i:=1to symopts do
@ -611,7 +621,10 @@ begin
writeln(space,' Number : ',getlongint); writeln(space,' Number : ',getlongint);
write (space,' Next : '); write (space,' Next : ');
readdefref; readdefref;
getlongint; write (space,' Class : ');
readdefref;
write (space,' File Pos : ');
readposinfo;
end; end;
ibprocvardef : ibprocvardef :
@ -707,13 +720,13 @@ begin
ibclassrefdef : ibclassrefdef :
begin begin
readcommondef('Class reference definition'); readcommondef('Class reference definition');
writeln(space,' To definition : '); write (space,' To definition : ');
readdefref; readdefref;
end; end;
ibsetdef : ibsetdef :
begin begin
writeln(space,'Set definition'); readcommondef('Set definition');
write (space,' Element type : '); write (space,' Element type : ');
readdefref; readdefref;
b:=getbyte; b:=getbyte;
@ -753,6 +766,7 @@ end;
procedure readinterface; procedure readinterface;
var var
b : byte; b : byte;
sourcenumber,
unitnumber : word; unitnumber : word;
ucrc,uintfcrc : longint; ucrc,uintfcrc : longint;
begin begin
@ -767,8 +781,12 @@ begin
ibsourcefiles : ibsourcefiles :
begin begin
sourcenumber:=1;
while not EndOfEntry do while not EndOfEntry do
Writeln('Source file: ',getstring); begin
Writeln('Source file ',sourcenumber,' : ',getstring);
inc(sourcenumber);
end;
end; end;
ibloadunit : ibloadunit :
@ -1102,7 +1120,7 @@ end;
procedure help; procedure help;
begin begin
writeln('usage: dumpppu [options] <filename1> <filename2>...'); writeln('usage: ppudump [options] <filename1> <filename2>...');
writeln; writeln;
writeln('[options] can be:'); writeln('[options] can be:');
writeln(' -V<verbose> Set verbosity to <verbose>'); writeln(' -V<verbose> Set verbosity to <verbose>');
@ -1163,7 +1181,10 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.1 1999-05-12 16:11:39 peter Revision 1.2 1999-05-14 17:52:04 peter
* new deref
Revision 1.1 1999/05/12 16:11:39 peter
* moved * moved
Revision 1.31 1999/04/29 17:22:34 peter Revision 1.31 1999/04/29 17:22:34 peter